<?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>El CoDiGo K &#187; Python</title>
	<atom:link href="http://www.elcodigok.com.ar/category/lenguajes-de-programacion/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.elcodigok.com.ar</link>
	<description>Un blog de Ayuda a Programadores</description>
	<lastBuildDate>Wed, 01 Feb 2012 14:09:34 +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>Como configurar Git para un proyecto en Python</title>
		<link>http://www.elcodigok.com.ar/2011/11/como-configurar-git-para-un-proyecto-en-python/</link>
		<comments>http://www.elcodigok.com.ar/2011/11/como-configurar-git-para-un-proyecto-en-python/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 13:53:16 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[principiante]]></category>
		<category><![CDATA[Proyecto]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2570</guid>
		<description><![CDATA[En el último artículo que publiqué indicaba como desde una cuenta en GitHub podemos llegar a tener un repositorio público y gratuito para alojar nuestros proyectos de software. El siguiente paso es comenzar a configurar ciertas cuestiones propias de Git para que ese registro de commits, ramas y versiones sea prolija y por sobre todas las cosas almacene lo que ...]]></description>
			<content:encoded><![CDATA[<p>En el último artículo que publiqué indicaba como desde una cuenta en <strong>GitHub</strong> podemos llegar a tener un repositorio público y gratuito para alojar nuestros proyectos de software.</p>
<p>El siguiente paso es comenzar a configurar ciertas cuestiones propias de <strong>Git</strong> para que ese registro de commits, ramas y versiones sea prolija y por sobre todas las cosas almacene lo que realmente nos interesa.</p>
<p>Por defecto en nuestro directorio local, Git va a comenzar a realizar el almacenado de toda la información que muchas veces no es necesaria, como en el caso de directorios con cache, archivos de log o bitacoras o como por ejemplos los famosos archivos precompilados de python <strong>.pyc</strong> que se generan al momento de la ejecución.</p>
<p>Entonces antes de realizar nuestros commit iniciales en el proyectos les recomiendo que editen el archivos <strong>.git/config/exclude</strong></p>
<div class="codecolorer-container vim mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="vim codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># git<span style="color: #000000;">-</span>ls<span style="color: #000000;">-</span>files <span style="color: #000000;">--</span>others <span style="color: #000000;">--</span>exclude<span style="color: #000000;">-</span>from=<span style="color: #000000;">.</span>git<span style="color: #000000;">/</span>info<span style="color: #000000;">/</span>exclude<br />
# Lines that start with <span style="color: #C5A22D;">'#'</span> are <span style="color: #668080;">comments</span><span style="color: #000000;">.</span><br />
# For a project mostly <span style="color: #804040;">in</span> C, the following would be a good <span style="color: #804040;">set</span> of<br />
# exclude patterns <span style="color: #000000;">&#40;</span>uncomment them <span style="color: #804040;">if</span> you want <span style="color: #668080;">to</span> use them<span style="color: #000000;">&#41;</span><span style="color: #000000;">:</span><br />
# <span style="color: #000000;">*.</span><span style="color: #000000;">&#91;</span>oa<span style="color: #000000;">&#93;</span><br />
<span style="color: #000000;">*~</span><br />
<span style="color: #000000;">*.</span>pyc<br />
cache<br />
<span style="color: #000000;">*.</span>log</div></td></tr></tbody></table></div>
<p>De esa manera se aseguran que tanto los direcotiros como archivos que se encuentran en esta lista no van a ser revisados por Git, simplemente serán ignorado por completo del proyecto.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2011/11/como-configurar-git-para-un-proyecto-en-python/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>md5 a una variable en Python</title>
		<link>http://www.elcodigok.com.ar/2011/04/md5-a-una-variable-en-python/</link>
		<comments>http://www.elcodigok.com.ar/2011/04/md5-a-una-variable-en-python/#comments</comments>
		<pubDate>Tue, 26 Apr 2011 11:56:24 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[md5]]></category>
		<category><![CDATA[variable]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2446</guid>
		<description><![CDATA[Hace ya un tiempo vimos como podemos implementar fácilmente el módulo para Python donde nos permite codificar un mensaje en md5. Vamos a ampliar este conocimiento por una consulta de carla y vamos a modificar el ejemplo inicial para ver como podemos mejorarlo. 1234567891011121314151617#!/usr/bin/python &#34;&#34;&#34; &#160; * ejemplo_02.py &#160; * &#160; * @autor: Daniel M. Maldonado &#160; * @email: &#60;danyx@elcodigok.com.ar&#62; ...]]></description>
			<content:encoded><![CDATA[<p>Hace ya un tiempo vimos como podemos implementar fácilmente el módulo para Python donde nos permite codificar un mensaje en md5.</p>
<p>Vamos a ampliar este conocimiento por una consulta de <strong>carla</strong> y vamos a modificar el <a href="http://www.elcodigok.com.ar/2010/09/md5-en-python/"><strong>ejemplo inicial</strong></a> para ver como podemos mejorarlo.</p>
<div class="codecolorer-container python mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">#!/usr/bin/python</span><br />
<br />
<span style="color: #483d8b;">&quot;&quot;&quot;<br />
&nbsp; * ejemplo_02.py<br />
&nbsp; *<br />
&nbsp; * @autor: Daniel M. Maldonado<br />
&nbsp; * @email: &lt;danyx@elcodigok.com.ar&gt;<br />
&nbsp; * @web: &nbsp; http://www.elcodigok.com.ar<br />
&quot;&quot;&quot;</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">md5</span><br />
<br />
texto <span style="color: #66cc66;">=</span> <span style="color: #dc143c;">md5</span>.<span style="color: #dc143c;">new</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
variable <span style="color: #66cc66;">=</span> <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Ingrese un mensaje: &quot;</span><span style="color: black;">&#41;</span><br />
texto.<span style="color: black;">update</span><span style="color: black;">&#40;</span>variable<span style="color: black;">&#41;</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">print</span> texto.<span style="color: black;">hexdigest</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></div></td></tr></tbody></table></div>
<p><span id="more-2446"></span>Ahora vemos que con esta pequeña modificación podemos codificar en md5 el contenido de una variable, en este caso lo que ingresamos por el teclado.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2011/04/md5-a-una-variable-en-python/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Python para Principiantes: Trabajando con SQLObject I</title>
		<link>http://www.elcodigok.com.ar/2011/04/python-para-principiantes-trabajando-con-sqlobject-i/</link>
		<comments>http://www.elcodigok.com.ar/2011/04/python-para-principiantes-trabajando-con-sqlobject-i/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 13:27:31 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[ORM]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[SQLObject]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2442</guid>
		<description><![CDATA[Sin duda alguna Python es uno de los lenguajes más dinámicos que conocí, ideal para aprender a programar para aquellos que son realmente nuevos en este teman, la simpleza de su código fuente lo hace aún más elegante y robusto. Hasta este punto sabemos que Python tiene soporte para conectar diferentes motores de bases de datos. En esta serie de ...]]></description>
			<content:encoded><![CDATA[<p>Sin duda alguna <strong>Python</strong> es uno de los lenguajes más dinámicos que conocí, ideal para aprender a programar para aquellos que son realmente nuevos en este teman, la simpleza de su código fuente lo hace aún más elegante y robusto.</p>
<p>Hasta este punto sabemos que Python tiene soporte para conectar diferentes motores de bases de datos. En esta serie de artículos vamos a aprender a utilizar un componente <strong>ORM</strong> realmente muy potente llamado <a href="http://sqlobject.org"><strong>SQLObject</strong></a></p>
<h2><span>1</span> Introducción a SQLObject</h2>
<p><strong>SQLObject</strong> es un popular <strong>ORM</strong> (<em>Object Relatinal Manager</em>) y que proporciona una interfaz de objectos para manipular bases de datos relacionales, tomando como referencia a las tablas como clases, como instancias a las filas y a las columnas como atributos.</p>
<p>SQLObject incluye un lenguaje de consulta que hace que SQL sea más abstracta y por sobre todas las cosas y una de las características más importantes, proporciona la independencia de la Base de Datos a la hora de programar nuestras aplicaciones.</p>
<blockquote><p>Pensar que SQLObject es el único ORM que encontramos para Python sería subestimar a la excelente comunidad de programadores que tiene este lenguaje, en realidad podemos encontrar varios como es el caso de <strong>SQLAlchemy</strong>, <strong>Storm</strong>, <strong>Autumn</strong>, <strong>XRecord</strong>, entre otros.</p></blockquote>
<p><span id="more-2442"></span><br />
<h2><span>2</span> Instalación de SQLObject</h2>
<p>Ahora que ya sabemos sobre la existencia de SQLobject y los beneficios que nos puede brindar, lo primero que vamos a hacer es instalar la biblioteca por medio de nuestro sistema de actualización de paquetes, como por ejemplo apt, yum, etc.</p>
<p>Para estos ejemplos vamos a utilizar SQLite3 es por ello que sería interesante que también lo tengamos instalado.</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> python-sqlobject</div></td></tr></tbody></table></div>
<h2><span>3</span> Primeros pasos con SQLObject</h2>
<p>En este primer acercamiento a SQLObject les propongo trabajar en el intérprete de comandos interactivo de Python para que luego ya podamos crear nuestros archivos y así las aplicaciones.</p>
<p>Este realmente es un ejemplo muy rápido y básico de como podemos utilizar SQLObject,</p>
<div class="codecolorer-container python mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">from</span> sqlobject <span style="color: #ff7700;font-weight:bold;">import</span> *<br />
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span><br />
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span><br />
<span style="color: #66cc66;">&gt;&gt;&gt;</span> schema <span style="color: #66cc66;">=</span> <span style="color: #483d8b;">'sqlite:///home/dmaldonado/basedatos.db'</span><br />
<span style="color: #66cc66;">&gt;&gt;&gt;</span> connection <span style="color: #66cc66;">=</span> connectionForURI<span style="color: black;">&#40;</span>schema<span style="color: black;">&#41;</span><br />
<span style="color: #66cc66;">&gt;&gt;&gt;</span> sqlhub.<span style="color: black;">processConnection</span> <span style="color: #66cc66;">=</span> connection<br />
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">class</span> Personal<span style="color: black;">&#40;</span>SQLObject<span style="color: black;">&#41;</span>:<br />
... &nbsp; &nbsp; <span style="color: black;">nombre</span> <span style="color: #66cc66;">=</span> StringCol<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
... &nbsp; &nbsp; <span style="color: black;">apellido</span> <span style="color: #66cc66;">=</span> StringCol<span style="color: black;">&#40;</span>length<span style="color: #66cc66;">=</span><span style="color: #ff4500;">100</span><span style="color: black;">&#41;</span><br />
... &nbsp; &nbsp; <br />
<span style="color: #66cc66;">&gt;&gt;&gt;</span> Personal.<span style="color: black;">createTable</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
<span style="color: black;">&#91;</span><span style="color: black;">&#93;</span><br />
<span style="color: #66cc66;">&gt;&gt;&gt;</span> Personal<span style="color: black;">&#40;</span>nombre<span style="color: #66cc66;">=</span><span style="color: #483d8b;">&quot;Daniel M.&quot;</span><span style="color: #66cc66;">,</span> apellido<span style="color: #66cc66;">=</span><span style="color: #483d8b;">&quot;Maldonado&quot;</span><span style="color: black;">&#41;</span><br />
<span style="color: #66cc66;">&lt;</span>Personal <span style="color: #ff4500;">1</span> nombre<span style="color: #66cc66;">=</span><span style="color: #483d8b;">'Daniel M.'</span> apellido<span style="color: #66cc66;">=</span><span style="color: #483d8b;">'Maldonado'</span><span style="color: #66cc66;">&gt;</span><br />
<span style="color: #66cc66;">&gt;&gt;&gt;</span> Personal.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span><br />
<span style="color: #66cc66;">&lt;</span>Personal <span style="color: #ff4500;">1</span> nombre<span style="color: #66cc66;">=</span><span style="color: #483d8b;">'Daniel M.'</span> apellido<span style="color: #66cc66;">=</span><span style="color: #483d8b;">'Maldonado'</span><span style="color: #66cc66;">&gt;</span></div></td></tr></tbody></table></div>
<p>Para entender este fragmento lo primero que hacemos es importar las clases de SQLobject, luego le indicamos un PATH en el que se encuentra la base de datos SQLite que vamos a trabajar, de no existir la va a crear, luego realizamos la conexión creamos una clase llamada Personal con dos atributos nombre y apellido, creamos la tabla, insertamos un registro y por último realizamos una consulta.</p>
<p>Como vieron es algo realmente muy simple de programar y hasta de leer, si se fijan son pasos e instrucciones muy rápidas para ver, no se preocupen si no entendieron algunas cosas, en los próximos capítulos vamos a ver en detalle cada componente, cada tipo de dato soportados, cada conexión con bases de datos y algunas cosas más.</p>
<p>Si realmente queremos verificar que lo que hicimos fue exitoso.</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sqlite3 <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>dmaldonado<span style="color: #000000; font-weight: bold;">/</span>basedatos.db<br />
SQLite version 3.7.2<br />
Enter <span style="color: #ff0000;">&quot;.help&quot;</span> <span style="color: #000000; font-weight: bold;">for</span> instructions<br />
Enter SQL statements terminated with a <span style="color: #ff0000;">&quot;;&quot;</span><br />
sqlite<span style="color: #000000; font-weight: bold;">&gt;</span> .schema<br />
CREATE TABLE personal <span style="color: #7a0874; font-weight: bold;">&#40;</span><br />
&nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">id</span> INTEGER PRIMARY KEY,<br />
&nbsp; &nbsp; nombre TEXT,<br />
&nbsp; &nbsp; apellido VARCHAR <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">100</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
<span style="color: #7a0874; font-weight: bold;">&#41;</span>;<br />
sqlite<span style="color: #000000; font-weight: bold;">&gt;</span> .q</div></td></tr></tbody></table></div>
<p>con lo cuál verificamos que realmente creó la base de datos en el PATH indicado sino que además creo la tabla y los campos de la misma.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2011/04/python-para-principiantes-trabajando-con-sqlobject-i/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Python, el lenguaje de programación del 2010</title>
		<link>http://www.elcodigok.com.ar/2011/01/python-lenguaje-programacion-2010/</link>
		<comments>http://www.elcodigok.com.ar/2011/01/python-lenguaje-programacion-2010/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 12:02:59 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2344</guid>
		<description><![CDATA[Python uno de los lenguajes de programación con mayor crecimiento en estos últimos años, logro ser galardonado como el Lenguaje de Programación del 2010 según cifras de TIOBE. desarrolloweb.com El premio TIOBE Programming Language 2010 es otorgado al lenguaje de programación que ha logrado ganar mayor cantidad de mercado durante el año, por lo que Python con un crecimiento del ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.elcodigok.com.ar/category/lenguajes-de-programacion/python/" target="_blank"><strong><img class="alignright" title="TIOBE" src="http://www.h-online.com/imgs/43/4/7/8/2/4/2/logo-tiobe-18e757f1fbf7f113.gif" alt="TIOBE" width="189" height="69" /></strong></a><a href="http://www.elcodigok.com.ar/category/lenguajes-de-programacion/python/" target="_blank"><strong>Python</strong></a> uno de los lenguajes de programación con mayor crecimiento en estos últimos años, logro ser galardonado como el Lenguaje de Programación del 2010 según cifras de <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html" target="_blank">TIOBE</a>.</p>
<blockquote><p><em>desarrolloweb.com</em> El premio TIOBE Programming Language 2010 es otorgado al lenguaje de programación que ha logrado ganar mayor cantidad de mercado durante el año, por lo que Python con un crecimiento del <strong>1.81%</strong> desde enero de 2010, logro alzarse con este título tras superar al segundo clasificado <strong>Objective-C</strong> con un <strong>+1.63%</strong> y Assembly con +0.86 en la tercera posición.</p></blockquote>
<p><span id="more-2344"></span>Sin duda Python va a continuar ganando más terreno con las ramas de su nueva versión 3.1.x y la cantidad innumerable de mejoras que presentan. Por ahora yo continúo con Python 2.7.x debido a que no todas las librerías y paquetes están portados a 3.x, de todas maneras gracias a estos reconocimiento Python y su comunidad no va a tardar en portar la mayoría de sus módulos.</p>
<p>Más hallá que Python fue declarado como el lenguaje del 2010, no hay que dejar de reconocer la persistencia de lenguajes tales como <strong>Java</strong>, <strong>C</strong>, <strong>C++</strong>, <strong>PHP</strong>, <strong>C#</strong>, <strong>Ruby</strong>, <strong>Go</strong>, <strong>Perl</strong>, entre otros que siempre estás entre los considerados populares en búsqueda de nuevos programadores.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2011/01/python-lenguaje-programacion-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>emma, la alternativa para gestionar MySQL</title>
		<link>http://www.elcodigok.com.ar/2011/01/emma-la-alternativa-para-gestionar-mysql/</link>
		<comments>http://www.elcodigok.com.ar/2011/01/emma-la-alternativa-para-gestionar-mysql/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 12:21:29 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2340</guid>
		<description><![CDATA[emma (Extendable MySQL Managing Assistant) es una herramienta gráfica para manipular y gestionar las Bases de Datos MySQL, con una interfaz realmente intuitiva y fácil de utilizar. Proporciona cuadros de diálogos para crear o modificar bases de datos, tablas, índices, datos, etc. Si realmente no estas cómodo utilizando la consola de MySQL para gestionar muchas de las operaciones comunes y ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><strong><img class="aligncenter" title="emma, la alternativa para gestionar MySQL" src="http://www.distrogeek.com/wp-content/uploads/2010/10/mysql.gif" alt="emma, la alternativa para gestionar MySQL" width="425" height="283" /></strong></p>
<p><strong>emma</strong> (<em><strong>E</strong>xtendable <strong>M</strong>ySQL <strong>M</strong>anaging <strong>A</strong>ssistant</em>) es una herramienta gráfica para manipular y gestionar las Bases de Datos <strong>MySQL</strong>, con una interfaz realmente intuitiva y fácil de utilizar. Proporciona cuadros de diálogos para crear o modificar bases de datos, tablas, índices, datos, etc.</p>
<p>Si realmente no estas cómodo utilizando la consola de MySQL para gestionar muchas de las operaciones comunes y estás con ganas de probar algo distinto a <strong>PHPMyAdmin</strong>, seguramente emma es la opción ideal, de alguna manera vas a aprender rápidamente conceptos relacionados a MySQL y te va a ayudar a perder poco a poco tus miedos ante el gigante MySQL.<span id="more-2340"></span></p>
<p>Les comentaba que la instalación es realmente muy simple, de hecho seguramente se encuentra en los repositorios de tu distribución GNU/Linux, de lo contrario es posible descargarlo desde su repositorio oficial en <strong><a href="http://freshmeat.net/projects/emma" target="_self">freshmeat</a></strong>.</p>
<p>Emma se encuentra disponible en su última versión estable 0.6 bajo los términos de la licencia GNU/GPL y codificada en el lenguaje de programación <a href="http://www.elcodigok.com.ar/category/lenguajes-de-programacion/python/" target="_blank">Python</a>.</p>
<p>Enlace | <a href="http://freshmeat.net/projects/emma" target="_blank">emma</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2011/01/emma-la-alternativa-para-gestionar-mysql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>¿Debo usar Python 2 o Python 3 para desarrollar mis aplicaciones?</title>
		<link>http://www.elcodigok.com.ar/2010/12/python-2-o-python-3/</link>
		<comments>http://www.elcodigok.com.ar/2010/12/python-2-o-python-3/#comments</comments>
		<pubDate>Thu, 16 Dec 2010 12:06:33 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2309</guid>
		<description><![CDATA[Creo que muchos de los programadores que conozco y trabajan con Python constantemente se realizan esta pregunta, y como será que en el sitio oficial www.python.org realizaron un artículo completo para explicando algunas razones. Should I use Python 2 or Python 3 for my development activity? El texto básicamente esta centrado en explicar las diferentes incompatibilidades de la versión Python ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" title="Python" src="http://plagatux.es/wp-content/uploads/2008/04/python-logo.png" alt="" width="479" height="161" /></p>
<p>Creo que muchos de los programadores que conozco y trabajan con <strong>Python</strong> constantemente se realizan esta pregunta, y como será que en el sitio oficial <a href="www.python.org" target="_blank">www.python.org</a> realizaron un artículo completo para explicando algunas razones.</p>
<blockquote><p><a href="http://wiki.python.org/moin/Python2orPython3" target="_blank">Should I use Python 2 or Python 3 for my development activity?</a></p></blockquote>
<p>El texto básicamente esta centrado en explicar las diferentes incompatibilidades de la versión <strong>Python 3</strong> respecto a <strong>Python 2</strong> y la cantidad de paquetes existentes, indicando algunos casos habituales y proponiendo diferentes soluciones.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2010/12/python-2-o-python-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Interfaces gráficas con Python</title>
		<link>http://www.elcodigok.com.ar/2010/11/interfaces-graficas-con-python/</link>
		<comments>http://www.elcodigok.com.ar/2010/11/interfaces-graficas-con-python/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 14:23:17 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[QT]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2049</guid>
		<description><![CDATA[La semana pasada mi amigo Luis (Retro) se dedicó a escribir 3 pequeños tutoriales en donde nos enseña una aplicación con tres de las librerías gráficas que podemos encontrar en Python, como ser Qt, wxPython y TKinter. De una manera muy simple para explicar las cosas, retro nos invita a continuar programando y nos alienta a escoger la librería que ...]]></description>
			<content:encoded><![CDATA[<p>La semana pasada mi amigo <strong>Luis</strong> (<em>Retro</em>) se dedicó a escribir 3 pequeños tutoriales en donde nos enseña una aplicación con tres de las librerías gráficas que podemos encontrar en <strong>Python</strong>, como ser <strong>Qt</strong>, <strong>wxPython</strong> y <strong>TKinter</strong>.</p>
<p>De una manera muy simple para explicar las cosas, retro nos invita a continuar programando y nos alienta a escoger la librería que más nos agrade o cumpla con nuestros requerimientos para el desarrollo de nuestras aplicaciones.</p>
<ul>
<li><a href="http://www.retronet.com.ar/?p=367" target="_blank">Interfaces gráficas de usuario con Python I (wxPython)</a></li>
<li><a href="http://www.retronet.com.ar/?p=376" target="_blank">Interfaces gráficas de usuario con Python II (PyQT4)</a></li>
<li><a href="http://www.retronet.com.ar/?p=386" target="_blank">Interfaces gráficas de usuario con Python III (TKInter)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2010/11/interfaces-graficas-con-python/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>md5 en Python</title>
		<link>http://www.elcodigok.com.ar/2010/09/md5-en-python/</link>
		<comments>http://www.elcodigok.com.ar/2010/09/md5-en-python/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 13:05:49 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=1764</guid>
		<description><![CDATA[En criptografía, MD5 (abreviatura de Message-Digest Algorithm 5, Algoritmo de Resumen del Mensaje 5) es un algoritmo de reducción criptográfico de 128 bits ampliamente usado. La codificación del MD5 de 128 bits es representada típicamente como un número de 32 dígitos hexadecimal. El siguiente código de 28 bytes ASCII será tratado con MD5 y veremos su correspondiente hash de salida: ...]]></description>
			<content:encoded><![CDATA[<p>En criptografía, <strong>MD5</strong> (abreviatura de <em>Message-Digest Algorithm 5</em>, Algoritmo de Resumen del Mensaje 5) es un algoritmo de reducción criptográfico de 128 bits ampliamente usado.</p>
<p>La codificación del <strong>MD5</strong> de 128 bits es representada típicamente como un número de 32 dígitos hexadecimal. El siguiente código de 28 bytes ASCII será tratado con MD5 y veremos su correspondiente hash de salida:</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">MD5<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">&quot;Esto sí es una prueba de MD5&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> = &nbsp;99008846853ff3b725c27315e469fbc</div></td></tr></tbody></table></div>
<p>Un simple cambio en el mensaje nos da un cambio total en la codificación hash, en este caso cambiamos dos letras, el «sí» por un «no».</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">MD5<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">&quot;Esto no es una prueba de MD5&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> = dd21d99a468f3bb52a136ef5beef5034</div></td></tr></tbody></table></div>
<p>Conozcamos ahora una pequeña implementación con Python gracias a la utilización de su módulo md5</p>
<div class="codecolorer-container python mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">#!/usr/bin/python</span><br />
<br />
<span style="color: #483d8b;">&quot;&quot;&quot;<br />
&nbsp; * ejemplo_01.py<br />
&nbsp; *<br />
&nbsp; * @autor: Daniel M. Maldonado<br />
&nbsp; * @email: danyx@elcodigok.com.ar<br />
&nbsp; * @web: &nbsp; http://www.elcodigok.com.ar<br />
&quot;&quot;&quot;</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">md5</span><br />
<br />
texto <span style="color: #66cc66;">=</span> <span style="color: #dc143c;">md5</span>.<span style="color: #dc143c;">new</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
texto.<span style="color: black;">update</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Implementacion del modulo md5&quot;</span><span style="color: black;">&#41;</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #dc143c;">repr</span><span style="color: black;">&#40;</span>texto.<span style="color: black;">digest</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></div></td></tr></tbody></table></div>
<p><span id="more-1764"></span><br />
El resultado de su ejecución es la siguiente</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff0000;">'\x84_U\xf3\x0c\xdcu\xd7\x9c\x95|\xb2/\x9c:~'</span></div></td></tr></tbody></table></div>
<p>Hay que tener en cuenta que esta suma de comprobación devuelve una cadena binaria. Conseguir su equivalente Hexadecimal es bastante fácil, basta con realizar pequeñas modificaciones en el código fuente de nuestro ejemplo anterior.</p>
<div class="codecolorer-container python mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">print</span> texto.<span style="color: black;">hexdigest</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></div></td></tr></tbody></table></div>
<p>El resultado sería el siguiente</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">845f55f30cdc75d79c957cb22f9c3a7e</div></td></tr></tbody></table></div>
<p>Para ver si realmente está funcionando bien pormos comenzar a realizar pequeñas modificaciones en el contenido del texto y comprobar como se va modificando la comprobación md5.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2010/09/md5-en-python/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Python 2.6.6 entre nosotros</title>
		<link>http://www.elcodigok.com.ar/2010/09/python-2-6-6-entre-nosotros/</link>
		<comments>http://www.elcodigok.com.ar/2010/09/python-2-6-6-entre-nosotros/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 12:08:41 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=1746</guid>
		<description><![CDATA[Atención a todos los que les gusta desarrollar aplicaciones con Python, les comento que ya se encuentra disponible la última versión de la rama 2.6.x correspondiente a Python 2.6.6 Como ya es de público conocimiento, esta versión significa que actualiza varías bugs y fallos como la construcción de módulos, problemas en su núcleo, librerías y su documentación; aún asi es ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" title="Python 2.6.6" src="http://tux-oracle.sourceforge.net/tux_oracle_files/python-logo.png" alt="" width="211" height="71" /></p>
<p>Atención a todos los que les gusta desarrollar aplicaciones con <strong>Python</strong>, les comento que ya se encuentra disponible la última versión de la rama <em>2.6.x </em>correspondiente a <strong>Python 2.6.6</strong></p>
<p>Como ya es de público conocimiento, esta versión significa que actualiza varías bugs y fallos como la construcción de módulos, problemas en su núcleo, librerías y su documentación; aún asi es bueno aclarar que en esta versión no incorpora una nueva característica o funcionalidad, simplemente parches de seguridad.</p>
<p>Siempre es bueno saber que el equipo de Python se encuentra trabajando paralelamente en varias versiones del lenguaje y sin descuidar ninguna de éstas, como ser la nueva actualización <strong>Python 2.6.6</strong>, la nueva rama <strong>Python 2.7</strong> y su reciente versión <strong>Python 3.2 alpha 2</strong></p>
<p>Como siempre para más info <a href="http://www.python.org/download/releases/2.6.6/" target="_self"><strong>www.python.org</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2010/09/python-2-6-6-entre-nosotros/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Comentarios finales respecto a Eclipse y NetBeans</title>
		<link>http://www.elcodigok.com.ar/2010/09/comentarios-finales-respecto-a-eclipse-y-netbeans/</link>
		<comments>http://www.elcodigok.com.ar/2010/09/comentarios-finales-respecto-a-eclipse-y-netbeans/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 13:18:16 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=1731</guid>
		<description><![CDATA[Luego de darle una nueva oportunidad a quien considero dos de los mejores y más populares IDE de programación nativamente creados para universo Java pero extendido a un gran abanico de lenguajes de programación, quería expresarle mis conclusiones y porque decidí dejar Eclipse y continuar en mis proyectos con NetBeans. En un primer momento, me propuse a renovar mis primeras ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" title="Comentarios finales respecto a Eclipse y NetBeans" src="http://deco-00.slide.com/r/1/6/dl/2IRJ5lKxzT9-Fb40SmwPkAd4wrHkxegs/watermark" alt="" width="473" height="291" /></p>
<p>Luego de darle una nueva oportunidad a quien considero dos de los mejores y más populares <strong>IDE</strong> de programación nativamente creados para universo Java pero extendido a un gran abanico de lenguajes de programación, quería expresarle mis conclusiones y porque decidí dejar <span style="text-decoration: line-through;"><strong>Eclipse</strong></span> y continuar en mis proyectos con <strong>NetBeans</strong>.</p>
<p>En un primer momento, me propuse a renovar mis primeras impresiones antes los dos IDEs con conclusiones realmente sorprendentes, mucho más veloz que hace un par de años, integrando nuevas funcionalidades y herramientas y definitivamente con un compromiso firme de actualización ante su comunidad de usuarios.</p>
<p>Recordando mi objetivo claro que era el encontrar un entorno de desarrollo integrado que me provea soporte para PHP; más explícitamente el Framework de Programación <strong>Symfony</strong> y programar en <strong>Python</strong> de forma más ágil que lo que estaba acostumbrado a utiliza el editor de diablo vi.<span id="more-1731"></span></p>
<p>Para abordar de forma más particular a <strong>Eclipse Helios</strong>, definitivamente <em>NUNCA</em> pude realizar un proyecto en Symfony a pesar de contar con la instalación de los plugins para symfony y generar su correspondiente configuración, realmente fue un dolor de cabeza, muchos de sus fanáticos que querrán matarme pero les juro que deje lo mejor para aprovechar y no pude. Tiene un muy buen soporte para Git que es mi herramienta de control de versiones y muy buen soporte para Proyecto en Python, pero mi objetivo principal en las prioridades era Symfony y me encontré con grandes obstáculos.</p>
<p>Respecto a <strong>NetBeans</strong>, todavía recuerdo aquel momento en donde NetBeans se comprometía a realizar una integración con Symfony, mi error recuerdo fue haber probado en el primer lanzamiento que se encontraba realmente muy verde y con poco soporte. Quizás por hay venía mi desconfianza a la hora de volver a probarlo con poca expectativa.</p>
<p>Pero les aseguro que todo cambió drásticamente al comenzar a realizar los primeros proyectos, sobre todo la nueva integración que colabora con aquellos que no son tan experto en Symfony, se amplió notablemente este soporte para facilidad de los usuarios.</p>
<p>Ni bien lo instalé ya me encontraba realizando proyectos tanto para Symfony como así también para Python, rápidamente instalé su plugins para Git llamado nbgit y demás complemento que agilizan aún más el trabajo de programación.</p>
<p>Entonces que fue lo que paso, pues está más que claro no tengo absolutamente nada en contra de Eclipse, es más me parece un IDE magnífico, pero <strong>NetBeans</strong> en esta oportunidad solucionó mi necesidad primordial de forma muy efectiva, simple y rápida.</p>
<p>De todas maneras para mis próximas charlas sobre Symfony voy a tener buenos argumentos para recomendar ambos IDEs para tenerlos en cuenta.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2010/09/comentarios-finales-respecto-a-eclipse-y-netbeans/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

