<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Ricardo Galli, de software libre &#187; django</title>
	<atom:link href="http://gallir.wordpress.com/tag/django/feed/" rel="self" type="application/rss+xml" />
	<link>http://gallir.wordpress.com</link>
	<description>De software, internet, legales</description>
	<lastBuildDate>Sun, 27 May 2012 00:49:05 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='gallir.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Ricardo Galli, de software libre &#187; django</title>
		<link>http://gallir.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://gallir.wordpress.com/osd.xml" title="Ricardo Galli, de software libre" />
	<atom:link rel='hub' href='http://gallir.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Google WepApp versus Django</title>
		<link>http://gallir.wordpress.com/2008/04/19/google-wepapp-versus-django/</link>
		<comments>http://gallir.wordpress.com/2008/04/19/google-wepapp-versus-django/#comments</comments>
		<pubDate>Sat, 19 Apr 2008 00:11:25 +0000</pubDate>
		<dc:creator>gallir</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[webapp]]></category>

		<guid isPermaLink="false">http://gallir.wordpress.com/?p=152</guid>
		<description><![CDATA[Estoy haciendo pequeñas pruebas con el Webppp de Google Apps y Django. Y me parece mucho más simple y sobre todo &#8220;natural&#8221; el Wepapp que Django. Tienes menos funcionalidades, por supuesto, la más obvia es la interfaz &#8220;admin&#8221;, y en menor grado la gestión de usuarios y sesiones y los formularios (aunque tiene tela que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gallir.wordpress.com&#038;blog=1979468&#038;post=152&#038;subd=gallir&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Estoy haciendo pequeñas pruebas con el Webppp de Google Apps y Django. Y me parece mucho más simple y sobre todo &#8220;natural&#8221; el Wepapp que Django. Tienes menos funcionalidades, por supuesto, la más obvia es la interfaz &#8220;admin&#8221;, y en menor grado la gestión de usuarios y sesiones y los formularios (aunque tiene tela que no se incluya por defecto la protección contra CSRF).</p>
<p>Aún así la curva de aprendizaje del WebApp me parece menos empinada y una mayor flexibilidad. Por ejemplo se pueden definir los URLs en el index.yaml y/o en el la creación de la instancia con el webapp.WSGIApplication() sin &#8220;violar&#8221; el patrón.</p>
<p>Luego el <a href="http://googleappengine.blogspot.com/2008/04/google-app-engine-helper-for-django.html">helper para usar Django</a> en Google App me parece muy enrevesado y rebuscado.</p>
<p>¿Será que Django es un <em>overkill</em> para GoogleApp o vale la pena?</p>
<p>Todavía no me han dado la cuenta que solicité. ¿Alguien probó portar un proyecto Django?</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gallir.wordpress.com/152/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gallir.wordpress.com/152/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gallir.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gallir.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gallir.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gallir.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gallir.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gallir.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gallir.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gallir.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gallir.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gallir.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gallir.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gallir.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gallir.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gallir.wordpress.com/152/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gallir.wordpress.com&#038;blog=1979468&#038;post=152&#038;subd=gallir&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gallir.wordpress.com/2008/04/19/google-wepapp-versus-django/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ad43523ec85a16e5281c67e7e84cd215?s=96&#38;d=identicon" medium="image">
			<media:title type="html">gallir</media:title>
		</media:content>
	</item>
		<item>
		<title>Google Web App, muy simple y potente</title>
		<link>http://gallir.wordpress.com/2008/04/09/google-web-app-muy-simple-y-potente/</link>
		<comments>http://gallir.wordpress.com/2008/04/09/google-web-app-muy-simple-y-potente/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 23:14:49 +0000</pubDate>
		<dc:creator>gallir</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[software libre]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[google web app]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://gallir.wordpress.com/?p=142</guid>
		<description><![CDATA[Actualización: No todo el framework de Django es compatible, justamente una de las partes más importantes para no depender de las cuentas de Google no se puede usar por incompatibilidad del modelo de datos: la gestión de autentificación de usuarios Afortunadamente se puede modificar o reimplementar el módulo para que sea compatible con el Bigtable [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gallir.wordpress.com&#038;blog=1979468&#038;post=142&#038;subd=gallir&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Actualización</strong>: No todo el <em>framework</em> de Django es compatible, justamente una de las partes más importantes para no depender de las cuentas de Google no se puede usar por incompatibilidad del modelo de datos: la gestión de autentificación de usuarios <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />  Afortunadamente se puede modificar o reimplementar el módulo para que sea compatible con el <em>Bigtable</em> de Google.</p>
<p>Hace unos días comentaba <a href="http://gallir.wordpress.com/2008/04/01/%c2%bfcomo-seria-el-google-web-services/">del posible nuevo servicio</a> que Google presentó hace unas horas, <a href="http://code.google.com/appengine/">el Google Web App</a>. Miré todo el vídeo de presentación, la documentación y pedí el alta. Por supuesto ya se habían cubierto las 10.000 cuentas que ofrecían, así que estoy en cola (como Toni Aloy, otro fan de Python y Django &#8211;fue el que me terminó de convencer, de él me fío mucho&#8211; <a href="http://trespams.com/2008/04/09/bons-temps-per-python/">que también habla del tema</a>).</p>
<p>Como ya comenté antes, tiene su parte &#8220;tenebrosa&#8221;:</p>
<blockquote><p>Que toda las <em>utilities</em>, o servicios básicos, estarán en manos de pocos gigantes- Eso ya pasó con otros servicios como la electricidad, el teléfono, agua o gas. Por lo que seguramente <a href="http://www.roughtype.com/archives/2008/03/government_and.php">se avecinan intervenciones gubernamentales en estos mercados</a> de <em>cloud-computing</em>.</p></blockquote>
<p>Aún así me alegró bastante lo que he visto, está muy bien parido. Aunque hay cosas de mi <em>wishlist</em> que todavía no se saben &#8211;los esquemas de precios&#8211; hay otra que se confirma: tener una base de datos persistente similar a la de Amazon, pero con más posibilidades.</p>
<p>Por otro lado una ventaja importante para mí. Justamente este cuatrimestre cambié, de un día para otro, lo que doy en la optativa de Administración de Sistemas Operativos.</p>
<p>Hasta el curso pasado daba una introducción a Perl, lenguaje que se debía usar para la segunda práctica de la asignatura. Este curso cambié a Python y opcionalmente Django. Esta noticia acaba de darme la alegría del día, la decisión ha estado acertada, no sólo porque sea &#8220;compatible&#8221; con Python, sino porque asegura aún más el futuro a largo plazo del Python (incluso Guido, su creador, está en el equipo) y afianza el modelo de <em>framework</em> del Django.</p>
<p>Pues resulta que Google Web App está basado todo en Python 2.5 &#8211;aunque introducirán más lenguajes para que sea &#8220;neutral&#8221;, aunque el Python seguirá siendo el principal&#8211;. Está soportado el 100% de Python, lo único que han limitado de la librería estándar es el acceso de ficheros &#8211;no pueden existir en Google, está todo distribuido&#8211; y la de <em>threads</em> &#8211;toda la aplicación ya funciona naturalmente en <em>threads</em>&#8211;.</p>
<p>No sólo eso, el sistema de desarrollo es mucho más simple &#8211;aunque más limitado al estar exclusivamente orientado a aplicaciones web&#8211; que Amazon EC2+S3. Se trata de un <em>framework</em> de desarrollo muy similar a Django con un sistema de almacenamiento &#8211;Datastore&#8211; similar a SimpleDB. Y nada más, ni máquinas virtuales, ni espacio de almacenamiento como S3.</p>
<p>Google te provee el SDK que lo instalas en tu ordenador (compatible GNU/Linux, Windows y Mac), ¡y sí <a href="http://www.apache.org/licenses/LICENSE-2.0">es software libre</a>!  (aunque era de suponer estando <a href="http://www.python.org/~guido/">Guido van Rossum</a> involucrado en su desarrollo).</p>
<blockquote><p>GOOGLE APP ENGINE SDK<br />
=====================<br />
Copyright 2008 Google Inc.<br />
All rights reserved.</p>
<p>Licensed under the Apache License, Version 2.0 (the &#8220;License&#8221;);<br />
you may not use this file except in compliance with the License.<br />
You may obtain a copy of the License at</p>
<p>http://www.apache.org/licenses/LICENSE-2.</p></blockquote>
<p>Está todo programado en Python, incluye Django, e implementa hasta el Datastore. Cuando lo has probado  en tu ordenador simplemente lo subes con los comandos incluidos en el SDK y con el mismo usuario y contraseña de tu cuenta en Google.</p>
<p>Simple, efectivo, potente y lo que te bajas a tu ordenador es software libre &#8211;y es de suponer que gran parte de ese mismo código es el mismo que se ejecuta en Google&#8211;.</p>
<p>El <em>framework</em> de desarrollo de Google es muy similar a Django, e incluye también Django, de hecho el sistema de definición del <a href="http://code.google.com/appengine/docs/datastore/entitiesandmodels.html">modelo de datos</a> y los <em>templates</em> son exactamente los mismos. Como soportan todo el Python puedes incluir y subir los frameworks o módulos que te interesen.</p>
<p>Pero incluso es más sencillo que Django, ya que pueden cambiar el modelo de datos en cualquier momento y no preocuparte de nada más. Éste es uno de los problemas de Django, sobre todo comparado con Rails. Si haces modificaciones de datos en tu servidor de desarrollo el Django puede crearte de nuevo toda las tablas, pero si tienes un servidor en producción tenías que hacer los cambios manualmente y con mucho cuidado.</p>
<p>El Datastore no es una base de datos relacional, no permite <em>joins</em> debido a la naturaleza distribuida de las tablas. Una tabla puede estar en un conjunto de servidores y otras en otros, desarrollar algoritmos distribuidos que permitan los <em>joins</em> es muy complicado, sino imnposible todavía, por lo que hay que solucionarlo en la aplicación &#8211;aunque los que estamos acostumbrados a desarrollar en web, especialmente con MySQL, ya no nos cuesta mucho diseñar las consultas  de esta manera&#8211;.</p>
<p>El lenguaje de consulta a la base de datos es el <a href="http://code.google.com/appengine/docs/datastore/gqlreference.html">GSL</a>, es muy similar al SQL, permite cláusulas where sobre varias columnas, ordenar por uno o varios campos, incluso <a href="http://code.google.com/appengine/docs/datastore/transactions.html">soporta transacciones</a> con funciones del módulo db.</p>
<p>También soprta la autentificación de Google &#8211;es muy simple de usar, por lo que supongo habrá muchos web que obligarán a tener cuenta en Google <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />  &#8211;, conexiones a URL externos y  envío de correo vía Gmail. Esto es lo que hay actualmente, prometen que iran agregando más módulos y servicios, ya han prometido que pondrán alguna manera que puedas hacer tratamiento masivo sobre la base de datos desde tus propios ordenadores, no sé si lo harán por copia o publicarán un API para acceso externo.</p>
<p>En resumen, técnicamente brillante, sobre todo por su simpleza. Además asegura total escalabilidad, replicación y persitencia tanto de la aplicación como de la base de datos, el problema fundamental de las máquinas virtuales de Amazon EC2.  Además se empiezan a vislumbrar algunas de los cambios que había predicho antetiormente <a href="http://gallir.wordpress.com/2008/04/01/%c2%bfcomo-seria-el-google-web-services/">cuando tenía la bola de cristal en marcha</a>:</p>
<ol>
<li><em>Tratamiento masivo de datos</em>. Parcialmente ya se tiene con la base de datos casi ilimitada</li>
<li><em>Programación distribuida y multiprogramación masiva con modelos como el <a href="http://labs.google.com/papers/mapreduce.html">map-reduce</a></em>. <span style="text-decoration:line-through;">Supongo que ya se usa automáticamente, posiblemente el el acceso a la base de datos.</span> La base de datos  es Bigtable, y como <a href="http://labs.google.com/papers/bigtable.html">explican en el <em>paper</em></a>, está implementado sobre el sistema de ficheros distribuido GFS,  el formato de ficheros es su SSTable y usan replicación soportada por el servicio  Chubby y el algoritmo Plaxo.</li>
<li><em>Las base de datos relacionales no serán relativamente tan importantes –como lo son hoy– por sus características relacionales+ACID, otras adquirirán más relevancia: </em><em>free form, bajas latencias&#8230;</em>: confirmado también.</li>
<li><em>Los lenguajes dinámicos serán los reyes (Python, Ruby, &#8230;)</em>. Confirmado ya con el Python.</li>
</ol>
<p>Del tema de la base de datos me llama mucho la atención a la repetición del patrón que se presenta incluso en los cambios de <a href="http://en.wikipedia.org/wiki/The_Structure_of_Scientific_Revolutions">paradigmas científicos según Kuhn</a>: la simplificación del modelo porque el anterior ya se había vuelto intratable de tan complejo y difícil.</p>
<p>Con la arquitectura actual de hardware y base de datos fundamentalmente centralizadas hemos exprimido al máximo &#8211;en potencia y complejidad&#8211; al modelo relacional+SQL. De golpe esa arquitectura se nos hizo muy compleja para escalar o replicar para el balanceo de carga o la alta disponibilidad. Parecía que la complejidad se haría cada vez peor. Pero no, está ocurriendo lo contrario.</p>
<p>Primero hubo que cambiar radicalmente la arquitectura de la plataforma, en esto ha reinado Google con su cantidad masiva de &#8220;ordenadores baratos&#8221;. Una vez que esa arquitectura está madura el software se adapta a ella, pero en vez de hacerse cada más complejo se simplificó radicalmente, como el caso del DataStore de Google o de SimpleDB de Amazon.</p>
<p>¿Quién hubiese predicho hace diez años que a estas alturas haríamos este aparente viaje hacia atrás?</p>
<p>Además, es fundamental para un programador, no te tienes que preocupar de instalar y configurar sistema operativo, software o base de datos. En realidad no te tienes que preocupar ni de que ocurra una avería. Simplemente a programar. Como explica Guido en el vídeo de presentación, era lo que siempre deseaba, pero que el tema de instalación y configuración siempre había sido una molestia enorme para los programadores.</p>
<p>Sonará casi a apostilla de <a href="http://www.enriquedans.com/">Enrique Dans</a>, pero es que me dejó francamente alucinado <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gallir.wordpress.com/142/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gallir.wordpress.com/142/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gallir.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gallir.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gallir.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gallir.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gallir.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gallir.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gallir.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gallir.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gallir.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gallir.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gallir.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gallir.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gallir.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gallir.wordpress.com/142/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gallir.wordpress.com&#038;blog=1979468&#038;post=142&#038;subd=gallir&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gallir.wordpress.com/2008/04/09/google-web-app-muy-simple-y-potente/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ad43523ec85a16e5281c67e7e84cd215?s=96&#38;d=identicon" medium="image">
			<media:title type="html">gallir</media:title>
		</media:content>
	</item>
	</channel>
</rss>
