<?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>Mundo Geek &#187; python</title>
	<atom:link href="http://mundogeek.net/etiqueta/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://mundogeek.net</link>
	<description>Mundo geek, bitácora sobre todo lo geek: software, gadgets, tecnología, internet, ...</description>
	<lastBuildDate>Wed, 08 Feb 2012 16:09:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>El lenguaje de los grandes programadores</title>
		<link>http://mundogeek.net/archivos/2011/05/08/el-lenguaje-de-los-grandes-programadores/</link>
		<comments>http://mundogeek.net/archivos/2011/05/08/el-lenguaje-de-los-grandes-programadores/#comments</comments>
		<pubDate>Sun, 08 May 2011 12:42:22 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[haskell]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[lenguajes]]></category>
		<category><![CDATA[lenguajes de programacion]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=6738</guid>
		<description><![CDATA[Hace un par de días comenzaba una nueva edición del Code Jam de Google, la famosa competición de programación que la empresa viene organizando desde hace ya 8 años. A parte de proporcionar una gran selección de problemas con los que practicar nuestras habilidades, sus estadísticas también pueden servirnos para comprobar cuáles son los lenguajes [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un par de días comenzaba una nueva edición del <a href="http://code.google.com/codejam/" title="Google Code Jam">Code Jam</a> de Google, la famosa competición de programación que la empresa viene organizando desde hace ya 8 años. A parte de proporcionar una gran selección de problemas con los que <a href="http://mundogeek.net/archivos/2011/03/02/katas-de-codigo/" title="Katas de código">practicar nuestras habilidades</a>, sus <a href="http://www.go-hero.net/jam/11/languages" title="Estadísticas Google Code Jam">estadísticas</a> también pueden servirnos para comprobar cuáles son los lenguajes de programación preferidos por los desarrolladores, y qué lenguajes utilizan los mejores programadores (sobre una muestra de 12.200 participantes).<span id="more-6738"></span></p>
<p>Empecemos con los lenguajes más utilizados. Estos podrían ser los lenguajes cuyas sintaxis y características gustan más, o, simplemente, aquellos con los que están más familiarizados los participantes. Como vemos, C++ es, con mucha diferencia, el lenguaje más popular, seguido a larga distancia de Java y <a href="http://mundogeek.net/tutorial-python/" title="Python para todos, mi libro sobre programación en Python">Python</a>.</p>
<div style="text-align:center"><img src="http://mundogeek.net/wp-content/lenguajes-programacion-mas-utilizados.png" alt="Lenguajes de programación más utilizados"/></div>
<p>Pasamos a continuación a los lenguajes con mayor porcentaje de programadores capaces. Vemos que el porcentaje de programadores que consiguieron la puntuación suficiente para pasar de fase es altísimo en el caso de C++ y Haskell (90,8% y 90,68%), mientras que el porcentaje de programadores aprobados en el caso de <a href="http://mundogeek.net/archivos/2009/11/26/tutorial-rapido-de-php/" title="Tutorial rápido de PHP">PHP</a> (lenguaje con el que yo me gano las lentejas actualmente) es alarmantemente bajo en comparación (76,5%).</p>
<div style="text-align:center"><img src="http://mundogeek.net/wp-content/mejores-lenguajes-programacion.png" alt="Mejores lenguajes de programación"/></div>
<p>Por último, veamos el porcentaje de programadores que consiguieron la puntuación perfecta, agrupados por lenguaje de programación. Aquí Haskell se distancia bastante de C++, y mucho más del resto de lenguajes, quizás por la llamada <a href="http://mundogeek.net/archivos/2007/10/23/la-paradoja-python/">paradoja Python</a>. PHP, por su parte, se mantiene con el dudoso honor de ser el lenguaje con peor porcentaje de programadores con puntuaciones perfectas.</p>
<div style="text-align:center"><img src="http://mundogeek.net/wp-content/mejores-lenguajes.png" alt="Lenguajes de programación con los mejores programadores"/></div>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2011/05/08/el-lenguaje-de-los-grandes-programadores/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>Un programa escrito en Haskell, que imprime un programa en Perl, que imprime&#8230;</title>
		<link>http://mundogeek.net/archivos/2011/03/15/un-programa-escrito-en-haskell-que-imprime-un-programa-en-perl-que-imprime/</link>
		<comments>http://mundogeek.net/archivos/2011/03/15/un-programa-escrito-en-haskell-que-imprime-un-programa-en-perl-que-imprime/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 16:37:51 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[curiosidades]]></category>
		<category><![CDATA[haskell]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[quine]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=6522</guid>
		<description><![CDATA[¿Un programa escrito en Haskell, que al ejecutarse imprime un programa en Perl, que al ejecutarse imprime un programa en Python, que al ejecutarse imprime un programa en Ruby, que al ejecutarse imprime un programa en C, que al ejecutarse imprime un programa en Java, que al ejecutarse imprime el programa original? Sí, es como [...]]]></description>
			<content:encoded><![CDATA[<p>¿Un <a href="http://blog.sigfpe.com/2011/01/quine-central.html" title="Quine central">programa</a> escrito en Haskell, que al ejecutarse imprime un programa en Perl, que al ejecutarse imprime un programa en Python, que al ejecutarse imprime un programa en Ruby, que al ejecutarse imprime un programa en C, que al ejecutarse imprime un programa en Java, que al ejecutarse imprime el programa original? Sí, es como para que te duela la cabeza, aunque el código, que podéis ver después del salto, es de lo más sencillo.</p>
<p>Este tipo de programas que se imprimen a sí mismos como salida (aunque en este caso, con una peculiaridad extra) se conocen con el nombre de <em>quines</em>, en honor al filósofo estadounidense Willard Van Orman Quine.<span id="more-6522"></span></p>
<pre name="code" class="haskell">import Data.List

langs = [Haskell, Perl, Python, Ruby, C, Java]

data Languages = Haskell | Ruby | Perl | C | Python | Java

sequenceFromString Haskell s = "map toEnum[" ++ (intercalate "," $
    map (\c -> show (fromEnum c)) s) ++ "]"
sequenceFromString Perl s    = (intercalate "," $
    map (\c -> "chr(" ++ show (fromEnum c) ++ ")") s)
sequenceFromString Python s  = (intercalate "+" $
    map (\c -> "chr(" ++ show (fromEnum c) ++ ")") s)
sequenceFromString Ruby s    = (intercalate "+" $
    map (\c -> show (fromEnum c) ++ ".chr") s)
sequenceFromString C s       = concatMap
    (\c -> "putchar(" ++ show (fromEnum c) ++ ");") s
sequenceFromString Java s    = concatMap
    (\c -> "o.write(" ++ show (fromEnum c) ++ ");") s

paramList' Haskell = intercalate " " . map (\n -> "a" ++ show n)
paramList' C       = intercalate "," . map (\n -> "char *a" ++ show n)
paramList' Python  = intercalate "," . map (\n -> "a" ++ show n)
paramList' Ruby    = intercalate "," . map (\n -> "a" ++ show n)
paramList' Java    = intercalate "," . map (\n -> "String a" ++ show n)

paramList Perl    _ = ""
paramList lang n = paramList' lang [0..n-1]

driver l args = defn l ++ intercalate (divider l) args ++ endDefn l

divider C       = "\",\""
divider Perl    = "','"
divider Ruby    = "\",\""
divider Python  = "\",\""
divider Haskell = "\" \""
divider Java    = "\",\""

defn C       = "main(){q(\""
defn Perl    = "&#038;q('"
defn Python  = "q(\""
defn Ruby    = "q(\""
defn Haskell = "main=q \""
defn Java    = "public static void main(String[]args){q(\""

endDefn C       = "\");}"
endDefn Perl    = "')"
endDefn Python  = "\")"
endDefn Ruby    = "\")"
endDefn Haskell = "\""
endDefn Java    = "\");}}"

arg Haskell n = "a" ++ show n
arg Perl n    = "$_[" ++ show n ++ "]"
arg C n       = "printf(a" ++ show n ++ ");"
arg Python n  = "a" ++ show n
arg Ruby n    = "a" ++ show n
arg Java n    = "o.print(a" ++ show n ++ ");"

argDivide Haskell l = "++" ++ sequenceFromString Haskell (divider l) ++ "++"
argDivide Perl l    = ","    ++ sequenceFromString Perl (divider l) ++ ","
argDivide C l       = sequenceFromString C (divider l)
argDivide Python l  = "+" ++ sequenceFromString Python (divider l) ++ "+"
argDivide Ruby l    = "+" ++ sequenceFromString Ruby (divider l) ++ "+"
argDivide Java l    = sequenceFromString Java (divider l)

argList lang1 lang2 n = intercalate (argDivide lang1 lang2) $
    map (arg lang1) ([1..n-1] ++ [0])

fromTo Haskell l n = "q " ++ paramList Haskell n ++ "=putStrLn$a0++" ++
    sequenceFromString Haskell ("\n" ++ defn l) ++ "++" ++
    argList Haskell l n ++ "++" ++ sequenceFromString Haskell (endDefn l)
fromTo Perl    l n = "sub q {" ++ "print $_[0]," ++
    sequenceFromString Perl ("\n" ++ defn l) ++ "," ++ argList Perl l n ++ "," ++
    sequenceFromString Perl (endDefn l ++ "\n") ++ "}"
fromTo Python  l n = "def q(" ++ paramList Python n ++
    "): print a0+" ++ sequenceFromString Python ("\n" ++ defn l) ++
    "+" ++ argList Python l n ++ "+" ++ sequenceFromString Python (endDefn l)
fromTo Ruby    l n = "def q(" ++ paramList Ruby n ++
    ") print a0+" ++ sequenceFromString Ruby ("\n" ++ defn l) ++
    "+" ++ argList Ruby l n ++ "+" ++ sequenceFromString Ruby (endDefn l ++ "\n") ++ " end"
fromTo C       l n = "q(" ++ paramList C n ++ "){" ++ "printf(a0);" ++
    sequenceFromString C ("\n" ++ defn l) ++ argList C l n ++
    sequenceFromString C (endDefn l ++ "\n") ++ "}"
fromTo Java    l n = "public class quine{public static void q(" ++
    paramList Java n ++ "){java.io.PrintStream o=System.out;o.print(a0);" ++
    sequenceFromString Java ("\n" ++ defn l) ++ argList Java l n ++
    sequenceFromString Java (endDefn l ++ "\n") ++ "}"

main = do
    let n = length langs
    let langs' = cycle langs
    putStrLn $ fromTo (head langs') (head (tail langs')) n
    putStrLn $ driver (head langs') $ zipWith (\lang1 lang2 -> fromTo lang1 lang2 n)
        (take n (tail langs')) (tail (tail langs'))</pre>
<p><small><a href="http://news.ycombinator.com/item?id=2322145">Vía Hacker News</a></small></p>
<link type="text/css" rel="stylesheet" href="http://mundogeek.net/sh/css/SyntaxHighlighter.css"></link>
<script language="javascript" src="http://mundogeek.net/sh/js/shCore.js"></script><br />
<script language="javascript" src="http://mundogeek.net/sh/js/shBrushHaskell.js"></script><br />
<script language="javascript">dp.SyntaxHighlighter.ClipboardSwf = 'http://mundogeek.net/sh//flash/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');</script></p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2011/03/15/un-programa-escrito-en-haskell-que-imprime-un-programa-en-perl-que-imprime/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>PySide: El PyQt LGPL</title>
		<link>http://mundogeek.net/archivos/2009/08/31/pyside-el-pyqt-lgpl/</link>
		<comments>http://mundogeek.net/archivos/2009/08/31/pyside-el-pyqt-lgpl/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 10:05:35 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[Linklog]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[pyqt]]></category>
		<category><![CDATA[pyside]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=3844</guid>
		<description><![CDATA[PySide es un nuevo binding creado por Nokia para el uso de Qt en Python, con licencia LGPL.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pyside.org/" title="PySide">PySide</a> es un nuevo binding creado por Nokia para el uso de <a href="http://mundogeek.net/archivos/2008/11/24/interfaces-graficas-de-usuario-en-python/" title="Interfaces gráficas de usuario en Python">Qt en Python</a>, con licencia LGPL.</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2009/08/31/pyside-el-pyqt-lgpl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Python 3.1</title>
		<link>http://mundogeek.net/archivos/2009/06/30/python-3-1/</link>
		<comments>http://mundogeek.net/archivos/2009/06/30/python-3-1/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 12:18:49 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[Linklog]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://mundogeek.net/archivos/2009/06/30/python-3-1/</guid>
		<description><![CDATA[Hace un par de días se lanzó Python 3.1. Si tenéis interés podéis consultar los cambios en su web.]]></description>
			<content:encoded><![CDATA[<p>Hace un par de días se lanzó <a href="http://www.python.org/download/releases/3.1/" title="Python 3.1">Python 3.1</a>. Si tenéis interés podéis consultar <a href="http://docs.python.org/3.1/whatsnew/3.1.html" title="Cambios en Python 3.1">los cambios</a> en su web.</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2009/06/30/python-3-1/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Python, Lua y BeanShell en Android</title>
		<link>http://mundogeek.net/archivos/2009/06/09/python-lua-y-beanshell-en-android/</link>
		<comments>http://mundogeek.net/archivos/2009/06/09/python-lua-y-beanshell-en-android/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 12:42:50 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[beanshell]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[moviles]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=3397</guid>
		<description><![CDATA[Desde Google parecen empeñados en venderme un móvil con Android. Esta vez han añadido un entorno de ejecución de lenguajes de script, bautizado como Android Scripting Environment o ASE, que permite utilizar la mayoría de las APIs disponibles para las aplicaciones en Android. En concreto este entorno soporta por ahora Python, Lua y BeanShell, aunque [...]]]></description>
			<content:encoded><![CDATA[<p>Desde Google parecen empeñados en venderme un móvil con Android. Esta vez han añadido un entorno de ejecución de lenguajes de script, bautizado como <a href="http://code.google.com/p/android-scripting/">Android Scripting Environment</a> o ASE, que permite utilizar la mayoría de las APIs disponibles para las aplicaciones en Android. En concreto este entorno soporta por ahora <a href="http://mundogeek.net/tutorial-python/" title="Tutorial de Python">Python</a>, Lua y BeanShell, aunque están trabajando en añadir soporte para Ruby y <a href="http://mundogeek.net/tutorial_de_javascript/" title="Tutorial de JavaScript">JavaScript</a>.</p>
<p><img src="http://mundogeek.net/wp-content/lua-android.png" alt="Python, Lua y BeanShell en Android" title="Python, Lua y BeanShell en Android"/><span id="more-3397"></span></p>
<p>En Mundo geek ya enlazamos anteriormente un artículo sobre <a href="http://mundogeek.net/archivos/2009/01/01/python-en-android/" title="Python en Android">cómo ejecutar Python en Android</a> aunque, evidentemente, mediante este método no teníamos acceso a las APIs de Android.</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2009/06/09/python-lua-y-beanshell-en-android/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Java vs. Python</title>
		<link>http://mundogeek.net/archivos/2009/06/08/java-vs-python/</link>
		<comments>http://mundogeek.net/archivos/2009/06/08/java-vs-python/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 15:49:09 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[citas]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=3394</guid>
		<description><![CDATA[Tengo la impresión de que Java fue diseñado para hacer que fuera difícil escribir mal código, mientras que Python está diseñado para hacer que sea sencillo escribir buen código. &#8211; Magnus Lycka]]></description>
			<content:encoded><![CDATA[<blockquote><p>Tengo la impresión de que Java fue diseñado para hacer que fuera difícil escribir mal código, mientras que Python está diseñado para hacer que sea sencillo escribir buen código.</p>
<p>&#8211; Magnus Lycka</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2009/06/08/java-vs-python/feed/</wfw:commentRss>
		<slash:comments>58</slash:comments>
		</item>
		<item>
		<title>10 libros sobre software libre que merece la pena descargar</title>
		<link>http://mundogeek.net/archivos/2009/04/05/10-libros-sobre-software-libre-que-merece-la-pena-descargar/</link>
		<comments>http://mundogeek.net/archivos/2009/04/05/10-libros-sobre-software-libre-que-merece-la-pena-descargar/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 13:06:11 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[descargar]]></category>
		<category><![CDATA[gratis]]></category>
		<category><![CDATA[libros]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=2926</guid>
		<description><![CDATA[En tectonic han recopilado una lista con algunos libros interesantes relacionados con Linux y el software libre en general que pueden descargarse gratuitamente, algunos con licencias más restrictivas que otros. Aquí tenéis la lista, junto con una pequeña aportación mía. La mayoría están en inglés, eso si. 1 &#8211; Linux Starter Pack Este &#8220;pack de [...]]]></description>
			<content:encoded><![CDATA[<p>En tectonic han recopilado una lista con algunos <a href="http://www.tectonic.co.za/?p=4491">libros interesantes relacionados con Linux y el software libre en general</a> que pueden descargarse gratuitamente, algunos con licencias más restrictivas que otros. Aquí tenéis la lista, junto con una pequeña aportación mía. La mayoría están en inglés, eso si.<br />
<span id="more-2926"></span></p>
<h2>1 &#8211; Linux Starter Pack</h2>
<p>Este &#8220;pack de iniciación a Linux&#8221; consiste en un número especial de 130 páginas de la revista Linux Format, una de las revistas sobre Linux más vendidas del Reino Unido. Se trata de una guía centrada en Ubuntu que promete acompañarte en el camino de novato a usuario intermedio sin causar traumas y en sólo unas pocas horas. Explica qué es Linux, cómo instalar Ubuntu, cómo utilizar algunas de las aplicaciones más populares, instalar nuevo software, etc.<br />
<a href="http://www.tuxradar.com/linuxstarterpack">Linux Starter Pack</a></p>
<h2>2 &#8211; The Easiest Linux Guide You’ll Ever Read</h2>
<p>Otra introducción a Linux para usuarios de Windows, en esta ocasión basada en SuSE 10.1 (el libro data de 2006). Cuenta con 162 páginas llenas de capturas y de guías paso a paso de lo más detallado lo que lo convierte en un libro de lo más interesante para las personas que quieran iniciarse en SUSE / openSUSE.<br />
<a href="http://www.linux-books.us/suse_0002.php">The Easiest Linux Guide You’ll Ever Read</a></p>
<h2>3 &#8211; Ubuntu Pocket Reference and Guide</h2>
<p>Una guía de referencia para Ubuntu de muy reciente publicación. Basada en Ubuntu 8.04 / Ubuntu 8.10, nos enseña a realizar distintas tareas comúnes como la instalación y configuración de Ubuntu. Particularmente considero que es muy buen libro, aunque tiene muy pocas capturas de pantalla para estar enfocado a recién llegados al mundo Linux.<br />
<a href="http://www.tectonic.co.za/?p=3942">Ubuntu Pocket Reference and Guide</a></p>
<h2>4 &#8211; Producir Software de Código Abierto. Como Llevar a Buen Puerto un Proyecto de Código Libre</h2>
<p>Una introducción al software libre desde el punto de vista del desarrollador. Explica por qué escribir software libre y, sobre todo, cómo hacerlo. En el libro se tratan temas tan dispares como cómo escoger un buen nombre, qué licencia utilizar, control de versiones, seguimiento de errores, publicitar nuestro proyecto, etc.</p>
<p>Se publica utilizando una licencia CreativeCommons Attribution-ShareAlike (3.0).<br />
<a href="http://www.producingoss.com/es/">Producir Software de Código Abierto. Como Llevar a Buen Puerto un Proyecto de Código Libre</a><br />
<a href="http://www.producingoss.com/en/producingoss.pdf">Producing Open Source Software. How to Run a Successful Free Software Project</a></p>
<h2>5 &#8211; tuXlabs Cookbook</h2>
<p>El tuXlab fue un proyecto iniciado en 2002 por fundación de Mark Shuttleworth, el fundador de Ubuntu, que dotó a más de 200 escuelas sudafricanas de aulas con ordenadores corriendo Linux. El resultado es este libro de licencia CreativeCommons Attribution-ShareAlike 2.0 en el que se explica cómo montar un <em>tuXlab</em>.<br />
<a href="http://www.upfrontsystems.co.za/Members/jean/cookbook/tuXlab01.pdf/view">tuXlabs Cookbook</a></p>
<h2>6 &#8211; Cultura Libre</h2>
<p>Si os digo que es un libro de Lawrence Lessig, el creador de Creative Commons, seguramente adivinaréis de qué se trata y qué licencia utiliza. &#8220;Como los grandes grupos de comunicación utilizan la tecnología y la ley para clausurar la cultura y controlar la creatividad&#8221;.<br />
<a href="http://www.free-culture.cc/freecontent/">Free Culture</a><br />
<a href="http://traficantes.net/index.php/trafis/editorial/catalogo/coleccion_mapas/por_una_cultura_libre_como_los_grandes_grupos_de_comunicacion_utilizan_la_tecnologia_y_la_ley_para_clausurar_la_cultura_y_controlar_la_creatividad">Por una cultura libre</a></p>
<h2>7 &#8211; The Blender Basics</h2>
<p>Tutorial de 118 páginas de Blender, el popular programa de modelado 3D multiplataforma. En su página web podéis encontrar también juegos de ejemplo hechos con Blender, texturas, documentación, &#8230;<br />
<a href="http://www.cdschools.org/54223045235521/blank/browse.asp?A=383&#038;BMDRN=2000&#038;BCOB=0&#038;C=55205">The Blender Basics</a></p>
<h2>8 &#8211; Free and Open Source Software for Development</h2>
<p>Un libro que cuenta la experiencia de dos &#8220;evangelizadores&#8221; del software libre en África. Explica, desde su punto de vista, las expectativas y logros del software libre en los países en vía de desarrollo.<br />
<a href="http://arxiv.org/ftp/arxiv/papers/0808/0808.3717.pdf">Free and Open Source Software for Development</a></p>
<h2>9 &#8211; Apuntes del LPI 101 y 102</h2>
<p>Manuales para preparar los exámenes 101 y 102 de la certificación del LPI (Linux Professional Institute). Licenciados bajo la FDL.<br />
<a href="http://www.ledge.co.za/software/lpinotes/">Apuntes del LPI 101 y 102</a></p>
<h2>10 &#8211; La Catedral y el Bazar</h2>
<p>Un famoso ensayo de Eric S. Raymond que compara el modelo del bazar (software libre) y la catedral (software propietario). Un tanto partidista a ratos, pero una lectura muy recomendable no obstante. Existe una continuación llamado <a href="http://www.geocities.com/jagem/noosfera.html">Cultivando la Noosfera</a> (Homesteading the Noosphere).<br />
<a href="http://www.catb.org/~esr/writings/cathedral-bazaar/">The Cathedral and the Bazaar</a><br />
<a href="http://biblioweb.sindominio.net/telematica/catedral.html">La Catedral y el Bazar</a></p>
<h2>11 &#8211; Python para todos</h2>
<p><a href="http://mundogeek.net/tutorial-python" title="Tutorial de Python 'Python para todos'"><img src="http://mundogeek.net/tutorial-python/tutorial-python.jpg" alt="Tutorial de Python 'Python para todos'" title="Tutorial de Python 'Python para todos'" style="border:1px #cccccc solid;float:left; margin-right:1em;"/></a>Como extra, y como no podía ser de otra forma, también os recomiendo &#8216;Python para todos&#8217;, mi libro sobre programación en Python que se basa en los <a href="http://mundogeek.net/etiqueta/python/">tutoriales sobre el lenguaje</a> publicandos en Mundo geek desde hace un tiempo.<br />
<a href="http://mundogeek.net/tutorial-python/" title="Tutorial de Python">Python para todos</a>.</p>
<p>¿Conocéis algún otro libro gratuito sobre software libre o temas relacionados que merezca la pena recomendar?</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2009/04/05/10-libros-sobre-software-libre-que-merece-la-pena-descargar/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>¿Python hasta 5 veces más rápido?</title>
		<link>http://mundogeek.net/archivos/2009/03/27/%c2%bfpython-hasta-5-veces-mas-rapido/</link>
		<comments>http://mundogeek.net/archivos/2009/03/27/%c2%bfpython-hasta-5-veces-mas-rapido/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 17:13:35 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[cpython]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rendimiento]]></category>
		<category><![CDATA[unladen swallow]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=2857</guid>
		<description><![CDATA[Ese es el objetivo de Unladen Swallow, el nuevo proyecto de Google con el que pretenden revolucionar el rendimiento del intérprete de Python. Llamado así en homenaje a la película de los Monty Python &#8220;Los caballeros de la mesa cuadrada&#8221;, Unladen Swallow (golondrina sin carga) es una nueva rama de desarrollo de CPython en la [...]]]></description>
			<content:encoded><![CDATA[<p>Ese es el objetivo de <a href="http://code.google.com/p/unladen-swallow/" title="Unladen Swallow">Unladen Swallow</a>, el nuevo proyecto de Google con el que pretenden revolucionar el rendimiento del intérprete de Python.</p>
<p>Llamado así en homenaje a la película de los Monty Python &#8220;Los caballeros de la mesa cuadrada&#8221;, Unladen Swallow (golondrina sin carga) es una nueva rama de desarrollo de <a href="http://mundogeek.net/archivos/2008/01/14/instalacion-de-python/" title="Implementaciones de Python: CPython, Jython, IronPython, PyPy, ...">CPython</a> en la que los ingenieros de Google contribuirán construyendo un nuevo compilador JIT que sustituya a la máquina virtual de Python y acabando con la necesidad de limitar la ejecución de los threads a través del <a href="http://mundogeek.net/archivos/2008/04/18/threads-en-python/" title="Threads en Python">GIL</a> (Global Interpreter Lock), entre otros.</p>
<p>Puede que esté cerca el día en el que podamos utilizar Python para casi todo <img src='http://mundogeek.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2009/03/27/%c2%bfpython-hasta-5-veces-mas-rapido/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>PyS60, ahora con soporte de pantallas táctiles</title>
		<link>http://mundogeek.net/archivos/2009/03/25/pys60-ahora-con-soporte-de-pantallas-tactiles/</link>
		<comments>http://mundogeek.net/archivos/2009/03/25/pys60-ahora-con-soporte-de-pantallas-tactiles/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 14:17:58 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[Linklog]]></category>
		<category><![CDATA[moviles]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[s60]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=2849</guid>
		<description><![CDATA[PyS60, el port de Python desarrollado por Nokia para teléfonos de la plataforma S60, ahora con soporte para interfaces táctiles.]]></description>
			<content:encoded><![CDATA[<p>PyS60, el port de Python desarrollado por Nokia para teléfonos de la plataforma S60, <a href="http://blogs.forum.nokia.com/blog/pankaj-nathanis-forum-nokia-blog/2009/03/24/pys60-1.9.3-is-now-here-with-touch">ahora con soporte para interfaces táctiles</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2009/03/25/pys60-ahora-con-soporte-de-pantallas-tactiles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python en Android</title>
		<link>http://mundogeek.net/archivos/2009/01/01/python-en-android/</link>
		<comments>http://mundogeek.net/archivos/2009/01/01/python-en-android/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 11:33:41 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[Linklog]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[moviles]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=2278</guid>
		<description><![CDATA[Pequeña curiosidad. Cómo correr Python en la plataforma Android de Google.]]></description>
			<content:encoded><![CDATA[<p>Pequeña curiosidad. Cómo correr <a href="http://www.damonkohler.com/2008/12/python-on-android.html" title="Python en Android">Python en la plataforma Android de Google</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2009/01/01/python-en-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

