<?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>Fitoria</title>
	<atom:link href="http://fitoria.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://fitoria.net</link>
	<description></description>
	<lastBuildDate>Wed, 28 Dec 2011 00:17:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Claro Nicaragua: el monopolio de las telecomunicaciones al que no le gustan las críticas.</title>
		<link>http://fitoria.net/2011/12/claro-nicaragua-el-monopolio-de-las-telecomunicaciones-al-que-no-le-gustan-las-criticas/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=claro-nicaragua-el-monopolio-de-las-telecomunicaciones-al-que-no-le-gustan-las-criticas</link>
		<comments>http://fitoria.net/2011/12/claro-nicaragua-el-monopolio-de-las-telecomunicaciones-al-que-no-le-gustan-las-criticas/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 19:18:07 +0000</pubDate>
		<dc:creator>Adolfo Fitoria</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[planeta]]></category>
		<category><![CDATA[softwarelibre]]></category>
		<category><![CDATA[WTF]]></category>

		<guid isPermaLink="false">http://fitoria.net/?p=649</guid>
		<description><![CDATA[Cuando eres grande, tienes un monopolio puesto en práctica en televisión por cable, telefonía fija, internet, telefonía móvil(a medias) en todo un país te resulta fácil ganar dinero aunque tu servicio sea pésimo y con altos costos. En Nicaragua el &#8230; <a href="http://fitoria.net/2011/12/claro-nicaragua-el-monopolio-de-las-telecomunicaciones-al-que-no-le-gustan-las-criticas/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Cuando eres grande, tienes un monopolio puesto en práctica en televisión por cable, telefonía fija, internet, telefonía móvil(a medias) en todo un país te resulta fácil ganar dinero aunque tu servicio sea pésimo y con altos costos.</p>
<p>En Nicaragua el costo del internet es muy elevado en comparación con otros países de la región y la calidad ni se diga, tienes un 128kbs cuando pagas por 1mbs con cortes arbitrarios, pésimo servicio al cliente que en sus buenos ratos tarda unos 5 días en resolverte un problema de conexión y <a href="http://gwolf.org/blog/great-firehole-nicaragua" target="_blank">otras maravillas técnicas</a> en sus redes.</p>
<p>Y aparte de TODO eso que ya es <em><strong>terrible</strong></em> ahora atentan contra la libertad de expresión y neutralidad de la red.</p>
<p>Recientemente un grupo de clientes insatisfechos abrieron un portal para quejarse de esto, el portal en pocas horas logró cierta tracción en las redes sociales, y en menos de 2 días claro bloqueó el acceso al sitio y a toda la IP del servidor afectando a otros sitios mas.</p>
<p>El sitio es <a href="http://claroqueno.com" target="_blank">http://claroqueno.com</a> para los abonados de esta compañía pueden <a href="http://www.facebook.com/l.php?u=http%3A%2F%2F3.hidemyass.com%2Fip-5%2Fencoded%2FOi8vd3d3LmNsYXJvcXVlbm8uY29tLw%253D%253D&amp;h=BAQGU8QpEAQE3FfouvlTPNVNVUzRo0v9sAtyZXT7Q7o1GcQ" target="_blank">verlo acá usando proxy.</a></p>
<p><a href="http://claroqueno.com" target="_blank"><img class="aligncenter size-full wp-image-650" title="claroqueno" src="http://fitoria.net/wp-content/uploads/2011/12/claroqueno.png" alt="" width="1159" height="600" /></a></p>
<p>&nbsp;</p>
<h2>¿Cómo podemos ayudar?</h2>
<p><strong>Comunica: </strong>Hazte fan de <a href="https://www.facebook.com/pages/Claroqueno/247251762001900" target="_blank">Claro Que No en Facebook</a>, <a href="http://twitter.com/#!/CQN_Nicaragua" target="_blank">siguelo en twitter</a>, regá la voz, esto no puede seguir así.</p>
<h2>¿Por qué esto es grave?</h2>
<p>Esto sienta un terrible precedente, en un futuro podrían bloquear a otras empresas competidoras, blogs independientes, alguna aplicación que no les convenga y a como ya hacen: <strong>limitar ancho de banda en cierto sitios como youtube.</strong></p>
<p>No esperen ver nada de esto en los medios, no creo que publiquen algo al respecto ya que <strong>casi NUNCA</strong> critican a esta empresa, que es una de las que mas gasta en publicidad en el país, y los medios escritos que por esta época mueren no tienen otro palo donde ahorcarse.</p>
<p>PD: <a href="http://www.penalba.info/blog/2009/05/23/monopolio/" target="_blank">El blog de Peñalba abordó el tema del monopolio hace un tiempo atrás.</a><br />
<a href="http://juanortega.info/claro-nicaragua-censura-la-red/" target="_blank"> Post relacionado de Juan Ortega</a></p>
<p><strong>Actualización:</strong></p>
<p>Claro desbloqueó el sitio, después de casi un mes de reclamos por parte de la comunidad  en línea de Nicaragua. Claro se lució por lo tardío de la respuesta y de la activación del modo <a href="http://www.youtube.com/watch?v=uUMdO-99Jfw" target="_blank">Shakira(sordos-ciegos-mudos)</a> en las redes sociales y canales de atención sobre el tema.</p>
<p>Llegaron a creer que el sitio era de la &#8220;competencia&#8221; (puesto entre comillas por que solo les afecta en un ramo del imperio) e ilusamente <a href="http://www.laprensa.com.ni/2011/12/13/voces/83689" target="_blank">publicaron en los medios</a> a los que ellos sí tienen acceso fácilmente ya que pagan miles de pautas publicitaria al año en estos.</p>
<p>Lo peor aún es el silencio, aún no reconocen el error esperemos que tengamos respuesta pronto.</p>
]]></content:encoded>
			<wfw:commentRss>http://fitoria.net/2011/12/claro-nicaragua-el-monopolio-de-las-telecomunicaciones-al-que-no-le-gustan-las-criticas/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Django Suite III: Usando virtualenv y pip.</title>
		<link>http://fitoria.net/2011/11/django-suite-iii-usand-virtualenv-y-pip/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=django-suite-iii-usand-virtualenv-y-pip</link>
		<comments>http://fitoria.net/2011/11/django-suite-iii-usand-virtualenv-y-pip/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 11:30:14 +0000</pubDate>
		<dc:creator>Adolfo Fitoria</dc:creator>
				<category><![CDATA[django]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://fitoria.net/?p=642</guid>
		<description><![CDATA[Tercera entrega de la serie sobre Django, esta vez no hablaré del framework en si, sino de un par de herramientas básicas del ecosistema de Python para ayudarnos a ser mas ordenados a la hora de desarrollar proyectos. Virtualenv es una &#8230; <a href="http://fitoria.net/2011/11/django-suite-iii-usand-virtualenv-y-pip/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Tercera entrega de la serie sobre Django, esta vez no hablaré del framework en si, sino de un par de herramientas básicas del ecosistema de Python para ayudarnos a ser mas ordenados a la hora de desarrollar proyectos.</p>
<p><a href="http://pypi.python.org/pypi/virtualenv" target="_blank"><strong>Virtualenv</strong></a> es una herramienta que nos ayuda a crear ambientes aislados para Python en palabras mas simples instala las bibliotecas e intérprete en una carpeta separada a la de nuestra instalación en el sistema operativo, la ventajas están en que nos provee una manera fácil, rápida, segura y reproducible de hacer desarollo y pruebas de diversas aplicaciones.</p>
<p>Por otra parte <strong><a href="http://pypi.python.org/pypi/pip" target="_blank">pip</a> </strong>es una herramienta para instalar paquetes de Python desde el <strong><a href="http://pypi.python.org/pypi" target="_blank">Python Package Index</a></strong> que es el repositorio comunitario de paquetes. En conjunto con virtualenv, pip nos ayuda a tener todo organizado y limpio.</p>
<h2>Usando Virtualenv</h2>
<p>Primeramente lo instalamos con nuestro manejador de paquetes favorito, en caso de ubuntu el paquete se llama &#8220;python-virtualenv&#8221; luego procedemos a crear nuestro primer ambiente virtual.</p>
<p><code><br />
virtualenv primer_ambiente --no-site-packages<br />
</code></p>
<p>Donde <em>primer_ambiente</em> es el nombre que deseamos ponerle y<em> &#8211;no-site-packages</em> es un parámetro para que se cree un ambiente totalmente limpio tal y como fuera una instalación básica de python sin ninguna biblioteca extra. La ejecución de este comando creará una carpeta en el directorio en donde lo ejecutamos, recomiendo crear en su directorio $HOME una carpeta llamada virtualenvs para guardar todos los que vayamos creando en un solo lugar. Para activarlo hacemos lo siguiente:</p>
<p><code><br />
source /path/a/primer_ambiente/bin/activate</code></p>
<p>Sabremos que está activo por que en nuestra consola aparecerá (primer_ambiente) en el prompt, ya en nuestro ambiente podremos usar pip para confirugrarlo a nuestro gusto.</p>
<p>Para volver a la normalidad usamos el comando:<br />
<code><br />
deactivate</code></p>
<h2>Usando pip</h2>
<p>La función principal de pip: instalar, actualizar y eliminar paquetes nos enfocaremos en esas tres funciones.</p>
<p><strong>Instalar:</strong></p>
<p><code> pip install django<br />
pip install django==1.3.1<br />
</code></p>
<p>La primera línea instalaría django en la versión mas actual del pypi, mientras que en la segunda con el operador de igualdad podemos forzar la instalación de una versión específica de django o cualquier paquete requerido, esto es muy útil a la hora de tener incompatibilidades o <a href="http://es.wikipedia.org/wiki/C%C3%B3digo_heredado" target="_blank">código legacy.</a></p>
<p><strong>Desinstalar</strong></p>
<p><code> pip uninstall django </code></p>
<p>Simplemente elimina el paquete especificado.</p>
<p><strong>Actualizar</strong></p>
<p><code>pip install django --upgrade</code></p>
<p>Instalará la versión mas actual del paquete ya instalado previamente.</p>
<p><strong>Congelar</strong></p>
<p><code>pip freeze &gt; requirements.txt </code></p>
<p>Esto produce un <a href="http://www.pip-installer.org/en/latest/requirement-format.html" target="_blank">archivo de requemientos en el formato que pip</a> puede entender, el archivo de requerimientos detalla las dependencias que tiene un ambiente, su formato acepta tanto origenes del pypi, paquetes en formato tar.gz repositorios en git, mercurial y svn. Comúnmente nos encontraremos de un requirements.txt en muchos proyectos.</p>
<p>Si ejecutamos este comando  en primer_ambiente seguramente tendremos un par de requerimientos, django que hemos instalado manualmente y distribute, que viene por defecto.</p>
<p><strong>Instalar desde un archivo de requerimiento.</strong></p>
<p><code> pip install -r requirements.txt </code></p>
<p>Esto leerá el archivo de requerimientos y lo instalará en el ambiente actual.</p>
<h2>¿De qué nos sirve todo esto?</h2>
<p>Simple: <strong>orden, orden, orden!</strong> Ventajas de usar virtualenv + pip:</p>
<ol>
<li>reproducible</li>
<li>fácil de compartir por medio del archivo de requerimiento</li>
<li>no afecta los paquetes del sistema</li>
<li>nos ayuda a la hora de hacer deployments con django.</li>
</ol>
<div>Ahora repitan conmigo: &#8220;todo proyecto de django deberá tener su propio virtualenv&#8221;</div>
<div>Lectura extra:</div>
<div><a href="http://www.doughellmann.com/projects/virtualenvwrapper" target="_blank">Virtualenvwrapper</a>: un interesante proyecto que provee comandos mas fáciles de recordar para crear, usar y activar virtualenvs.</div>
]]></content:encoded>
			<wfw:commentRss>http://fitoria.net/2011/11/django-suite-iii-usand-virtualenv-y-pip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Django Suite II: Configurando nuestro proyecto de manera correcta.</title>
		<link>http://fitoria.net/2011/11/django-suite-ii-configurando-nuestro-proyecto-de-manera-correcta/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=django-suite-ii-configurando-nuestro-proyecto-de-manera-correcta</link>
		<comments>http://fitoria.net/2011/11/django-suite-ii-configurando-nuestro-proyecto-de-manera-correcta/#comments</comments>
		<pubDate>Sun, 20 Nov 2011 23:56:30 +0000</pubDate>
		<dc:creator>Adolfo Fitoria</dc:creator>
				<category><![CDATA[django]]></category>
		<category><![CDATA[informatica]]></category>
		<category><![CDATA[planeta]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://fitoria.net/?p=618</guid>
		<description><![CDATA[En esta entrada abordaremos un tema importante: la configuración del proyecto. Como dije en la entrada anterior, en configuraciones tampoco hay una manera definitiva de hacer las cosas ya que la flexibilidad de Django nos lo permite. Django usa archivos &#8230; <a href="http://fitoria.net/2011/11/django-suite-ii-configurando-nuestro-proyecto-de-manera-correcta/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En esta entrada abordaremos un tema importante: la <strong>configuración </strong>del proyecto. Como dije en la entrada anterior, en configuraciones tampoco hay una manera definitiva de hacer las cosas ya que la flexibilidad de Django nos lo permite.</p>
<p>Django usa archivos Python para guardar configuraciones, aprovecha la manera de trabajar del lenguaje para hacer archivos de configuración fáciles de leer, extender y utilizar dentro de nuestros proyectos.</p>
<p>Normalmente al iniciar una aplicación creamos un proyecto en blanco con el <a href="https://docs.djangoproject.com/en/1.3/ref/django-admin/#startproject-projectname" target="_blank">comando startproject</a> que nos crea una carpeta con los archivos necesarios para iniciar.</p>
<p>Por defecto estas configuraciones<a href="https://docs.djangoproject.com/en/1.3/ref/settings/" target="_blank"> tienen ciertos valores</a> de los cuales normalmente nos molestaremos en cambiar sólo algunas, como configuración de bases de datos, ubicación de archivos estáticos y servidor de correo.</p>
<p>Acá algunos trucos para hacer estas configuraciones de manera dinámica y distribuibles para usarse en sistemas de control de versiones:</p>
<h2>Separación del archivo settings.py</h2>
<p>Este archivo contiene muchas veces datos sensibles que no pueden  ser publicados o simplemente varían de una estación de trabajo a otra, por lo que conviene separarlo con un archivo extra que por convención lo llamamos<strong>&#8220;settings_local.py&#8221;</strong> acá deberán ir estas configuraciones:</p>
<ul>
<li>DATABASES</li>
<li>ADMINS</li>
<li>DEBUG</li>
<li>TEMPLATE_DEBUG</li>
<li>SECRET_KEY (si lo vas a hacer código libre y público)</li>
<li>Claves privadas en caso de usarse( ej. alguna clave de API de terceros)</li>
<li>Configuraciones de correo.</li>
</ul>
<div><a href="https://gist.github.com/1381110" target="_blank">Ejemplo:</a></div>
<p><script type="text/javascript" src="https://gist.github.com/1381110.js">// <![CDATA[</p>
<p>// ]]&gt;</script><br />
Como prodrán ver acá incluyo una configuración extra llamada <strong>PROJECT_DIR</strong> que usaremos luego. Para mandar a llamar este nuevo archivo en el inicio de nuestros settings.py incluimos la siguiente línea:</p>
<pre>from settings_local import *</pre>
<h2>Dinamizando las rutas de archivos estáticos.</h2>
<p>Django requiere rutas de archivos para cargar archivos estáticos y definir donde estarán nuestras plantillas, para hacer esto de manera dinámica y distribuible usamos un poco de Python. En el archivo settings_local definimos PROJECT_DIR, que no es mas que la ruta del directorio donde se encuentra dicho archivo, a partir de éste armaremos MEDIA_ROOT, TEMPLATE_DIRS y STATIC_ROOT</p>
<p><a href="https://gist.github.com/1381150" target="_blank">Ejemplo:</a><br />
<script type="text/javascript" src="https://gist.github.com/1381150.js">// <![CDATA[</p>
<p>// ]]&gt;</script></p>
<h2>gitignore</h2>
<p>Si vas a usar git u otro sistema de control de versiones recomiendo agregar ciertos archivos al ignore de tu SCM para git tengo un <a href="https://gist.github.com/1381237" target="_blank">ejemplo acá</a> será similar para otros sistemas.</p>
<h2>Presentando django-initkit.</h2>
<p>Para no hacer todo estas configuraciones cada vez que tengamos que iniciar un proyecto he creado <a href="https://github.com/fitoria/django-initkit" target="_blank">django-initkit</a> que es un proyecto simple que sobrecarga el comando startproject para hacer automáticamente todo lo que describí en este post. Para instalarlo puedes hacerlo desde <a href="http://pypi.python.org/pypi/django-initkit/0.0.1" target="_blank">Pypi</a> (pip install django-initkit) o haciendo <a href="https://github.com/fitoria/django-initkit" target="_blank">checkout desde github</a>.</p>
<p>Su uso es igual a django-admin.py, nada más que el nombre del comando es django_initkit.py</p>
<p>Ejemplo:</p>
<pre>django_initkit.py startproject foo</pre>
<p>Espero que les haya gustado el post de hoy, pueden sugerir mas temas en los comentarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://fitoria.net/2011/11/django-suite-ii-configurando-nuestro-proyecto-de-manera-correcta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Django Suite I: Iniciar con Django.</title>
		<link>http://fitoria.net/2011/11/django-suite-i-iniciar-con-django/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=django-suite-i-iniciar-con-django</link>
		<comments>http://fitoria.net/2011/11/django-suite-i-iniciar-con-django/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 13:57:03 +0000</pubDate>
		<dc:creator>Adolfo Fitoria</dc:creator>
				<category><![CDATA[django]]></category>
		<category><![CDATA[planeta]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[softwarelibre]]></category>

		<guid isPermaLink="false">http://fitoria.net/?p=597</guid>
		<description><![CDATA[Esta es una parte de una serie de post semanales que estaré dedicando a distintos temas de Django. El titulo Django Suite es un pequeño juego de palabras ya que el nombre del framework fue inspirado por el gran guitarrista &#8230; <a href="http://fitoria.net/2011/11/django-suite-i-iniciar-con-django/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Esta es una parte de una serie de post semanales que estaré dedicando a distintos temas de Django. El titulo <strong>Django Suite </strong>es un pequeño juego de palabras ya que el nombre del framework fue inspirado por el gran guitarrista de jazz <a href="http://es.wikipedia.org/wiki/Django_Reinhardt" target="_blank">Django Reinhardt</a> y <a href="http://es.wikipedia.org/wiki/Suite" target="_blank">suite</a> que se define como un tipo de pieza musical compuesta por varios movimientos breves.</p>
<p style="text-align: justify;">Para el primer movimiento empezaré con lo básico el inicio<strong><em>,</em><em> no voy a realizar un tutorial</em></strong> de como iniciar en Django por que hay <strong><a href="http://lmgtfy.com/?q=tutorial+django" target="_blank">muchos ya en internet</a></strong> que son útiles pero debido a que muchas personas me preguntan cual es la mejor manera de iniciar con Django hago este post para guiarlos un poco sobre lo que las guías dan por hecho pero que nos pueden hacer perder algo de tiempo buscando por ahí.</p>
<p style="text-align: justify;">Sinceramente no hay bala de plata para lograr <a href="http://djangopony.com/" target="_blank">cabalgar al pony</a> sino por que el proceso de aprendizaje varía de quien en quien, lo que si puedo decir es que Django es uno de los proyectos <em>mejor documentados </em>que existen, casi todo el framework menos algunas funciones internas muy poco usadas están descritas en <a href="https://docs.djangoproject.com/en/1.3/">https://docs.djangoproject.com/</a> en la dirección anterior puedes navegar fácilmente todos los temas.</p>
<p style="text-align: justify;">La documentación es muy buena pero no te servirá de nada si no tienes un conocimiento básico de Python lo bueno es que existen libros como <a href="http://learnpythonthehardway.com/" target="_blank">este</a> y tutoriales completos como <a href="http://mundogeek.net/archivos/2008/05/06/el-tutorial-de-python-en-pdf/" target="_blank">este otro</a>. Cosas a tener muy en cuenta para conocer en python primero:</p>
<ol style="text-align: justify;">
<li>Definición, uso y construcción de <a href="http://docs.python.org/tutorial/modules.html" target="_blank">módulos en Python.</a></li>
<li>Definición y uso de funciones del tipo genérica, <a href="http://www.saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/" target="_blank">uso de parámetros *args y *kwargs</a>.</li>
<li>Uso y construcción de <a href="http://docs.python.org/library/re.html" target="_blank">expresiones regulares básicas.</a></li>
<li>Programación orientada a objetos y herencia de clases.</li>
<li>Como instalar paquetes de python desde <a href="http://pypi.python.org/pypi" target="_blank">PyPi</a>.</li>
</ol>
<div style="text-align: justify;">Django depende bastante de estos cuatro puntos anteriores, por ejemplo sin conocer mucho de expresiones regulares no podrán construir urls.</div>
<h2 style="text-align: justify;">Herramientas</h2>
<div style="text-align: justify;">Todo lo que necesitas es el interprete de python, django instalado, un navegador web y tu editor de texto favorito. Existen también algunos IDE con soporte a Django como <a href="http://wingware.com/" target="_blank">Wingware</a> y soporte para Python en <a href="http://www.eclipse.org/" target="_blank">Eclipse</a> trabaja con lo que te sientas mas cómodo.</div>
<div style="text-align: justify;">Para motor de base de datos puedes elegir Postgres, MySQL, SQLite3, SQL Server y Oracle igual que el punto anterior, usa tu favorito.</div>
<div style="text-align: justify;">
<h2>Modo de Trabajo</h2>
<p>Tienes que tomar en cuenta que Django es un framework que usa el <a href="http://es.wikipedia.org/wiki/Modelo_Vista_Controlador" target="_blank">patrón MVC</a> por lo que preferiblemente y por el bien de tu código debes de separar muy bien la lógica, presentación y datos de tu aplicación, si ves que esto se mezcla <em><strong>estás haciendo algo mal</strong></em>.</p>
<p>Django es <em><strong>modular </strong></em>e introduce el concepto de &#8220;aplicaciones plugables&#8221; que no son mas que módulos de Python encapsulando una parte de funcionalidad de tu aplicación web. Ejemplo práctico: Tenemos una página con un foro, un blog y una galería de fotos nuestro proyecto tendría como mínimo tres aplicaciones django separando la sección de blog, galería y foro. Este tipo de diseño hacen que existan mucho código libre de aplicaciones que simplemente conectamos con nuestro proyecto, si tiene nombre es muy probable que haya una aplicación de django para eso!</p>
<p>Si no me crees ve a <a href="http://djangopackages.com/">http://djangopackages.com/</a> y busca las múltiples alternativas para resolver un problema que tengas. Normalmente en mis proyectos uso al menos una aplicación creada por terceros y eso nos facilita la vida tremendamente. En la práctica gracias a esto podemos hacer un sitio con registro de usuarios, confirmación de correo, manejo de avatares, perfiles de usuarios, blog, menús dinámicos en <em><strong>menos de media hora</strong></em>, sin tomar en cuenta el tiempo que nos llevaría realizar el diseño en html.</p>
<p>Django también provee un motor de plantillas sencillo de entender pero a la vez muy poderoso que permite separar los roles entre el frontend y backend, haciendo mas sencillo el trabajo en equipos.</p>
<h2>Mantenerse al día</h2>
<p>Como todo en la vida y mas en el mundo de la programación y tecnología es una necesidad mantenerse informado con lo último. Acá una pequeña lista de sitios que pueden ayudar:</p>
<ul>
<li><a href="https://www.djangoproject.com/community/blogs/">https://www.djangoproject.com/community/blogs/</a></li>
<li><a href="http://django.es/comunidad/">http://django.es/comunidad/</a></li>
<li><a href="http://reddit.com/r/django" target="_blank">http://reddit.com/r/django</a></li>
<li><a href="http://www.askthepony.com/blog/">http://www.askthepony.com/blog/</a></li>
<li><a href="http://django.es/blog/">http://django.es/blog/</a></li>
</ul>
<div>Te invito a probarlo y te aseguro que te engancharás enseguida, si le dedicas algo de tiempo podrías comenzar a hacer sitios web completamente funcionales en menos de una semana.</div>
<div>El fin.</div>
</div>
<div style="text-align: justify;">PD. Puedes dejar sugerencia sobre nuevos temas en los comentarios.</div>
]]></content:encoded>
			<wfw:commentRss>http://fitoria.net/2011/11/django-suite-i-iniciar-con-django/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ahorra tiempo, se mas productivo con Byobu</title>
		<link>http://fitoria.net/2011/10/ahorra-tiempo-se-mas-productivo-con-byobu/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ahorra-tiempo-se-mas-productivo-con-byobu</link>
		<comments>http://fitoria.net/2011/10/ahorra-tiempo-se-mas-productivo-con-byobu/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 14:14:55 +0000</pubDate>
		<dc:creator>Adolfo Fitoria</dc:creator>
				<category><![CDATA[planeta]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://fitoria.net/?p=591</guid>
		<description><![CDATA[Byobu es un manejador de ventanas para terminal, en términos sencillos permite controlar varias ventanas de terminal desde una sola, esto es muy útil especialmente cuando estamos en servidores remotos en los que no tenemos acceso a un ambiente gráfico y manejadores &#8230; <a href="http://fitoria.net/2011/10/ahorra-tiempo-se-mas-productivo-con-byobu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://launchpad.net/byobu" target="_blank">Byobu</a> es un manejador de ventanas para terminal, en términos sencillos permite controlar varias ventanas de terminal desde una sola, esto es muy útil especialmente cuando estamos en <em>servidores remotos</em> en los que no tenemos acceso a un ambiente gráfico y manejadores de ventana desde GUI como los que estamos acostumbrados en nuestra máquina local. Este concepto ya existía en GNU screen del cual Byobu es un envoltorio y nos permite manejar de manera mas sencilla sus funciones.</p>
<p>Podemos instalar Byobu directamente desde los repositorios de ubuntu y luego configurarlo fácilmente a como describo en los siguientes pasos.</p>
<ol>
<li>Instalar con: apt-get install byobu</li>
<li>Activarlos por defecto con: byobu-enable (podemos revertir esta opcion con byobu-disable)</li>
</ol>
<div>El modo de uso es sencillo, acá una lista de los movimientos básicos para mas información ve a <a href="https://help.ubuntu.com/community/Byobu" target="_blank">la documentación de Byobu</a>:</div>
<div>
<ol>
<li><strong>F2 </strong>- nueva terminal</li>
<li><strong>F3 </strong>- moverse a la siguiente terminal</li>
<li><strong>F4 </strong>- moverse a la terminal anterior</li>
<li><strong>F8 </strong>- renombrar la terminal</li>
<li><strong>F9 </strong>- abrir configuración</li>
</ol>
<div>Acá un pantallazo:</div>
<div><a href="http://fitoria.net/wp-content/uploads/2011/10/byobu.png"><img class="alignnone size-full wp-image-592" title="byobu" src="http://fitoria.net/wp-content/uploads/2011/10/byobu.png" alt="" width="593" height="272" /></a></div>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://fitoria.net/2011/10/ahorra-tiempo-se-mas-productivo-con-byobu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2011- ¿Año de viajes o de cambios?</title>
		<link>http://fitoria.net/2011/07/2011-%c2%bfano-de-viajes-o-de-cambios/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=2011-%25c2%25bfano-de-viajes-o-de-cambios</link>
		<comments>http://fitoria.net/2011/07/2011-%c2%bfano-de-viajes-o-de-cambios/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 02:56:52 +0000</pubDate>
		<dc:creator>Adolfo Fitoria</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[planeta]]></category>

		<guid isPermaLink="false">http://fitoria.net/?p=590</guid>
		<description><![CDATA[¿Qué puedo decir? Este año para mí ha sido de muchas bendiciones en todos los aspectos de mi vida, para comenzar cronológicamente en febrero de este año fuí invitado a participar en el taller &#8220;Digital Natives with a cause?&#8221; que es &#8230; <a href="http://fitoria.net/2011/07/2011-%c2%bfano-de-viajes-o-de-cambios/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>¿Qué puedo decir? Este año para mí ha sido de muchas bendiciones en todos los aspectos de mi vida, para comenzar cronológicamente en febrero de este año fuí invitado a participar en el taller <strong><a href="http://digitalnatives.in/">&#8220;Digital Natives with a cause?&#8221;</a></strong> que es parte de una investigación a nivel mundial llevada a cabo por <a href="http://cis-india.org/">The Centre for Internet  &amp; Society&#8221;</a> e <a href="http://www.hivos.org/">Hivos</a> este se llevó a cabo en Santiago de Chile y fué una experiencia muy enriquecedora en mi vida, conocí a gente que esta haciendo cosas muy interesantes de (ciber/hack)activismo a nivel latinoamericano. Cuento un poco mas de esta experiencia en <a href="http://digitalnatives.in/blogs/fitoria">mi blog en digitalnatives.in</a> y visualmente en las <a href="https://picasaweb.google.com/adolfo.fitoria/SantiagoDeChileDigitalNativesWorkshop">fotos que recolecté</a> durante el viaje.</p>
<p>Un mes después fuí a parar a una de las conferencias de esas en las que uno <em>tiene que ir </em>a modo casi religioso de  &#8221;al menos una vez en la vida&#8221;. Gracias a la<strong> <a href="http://www.python.org/psf/">Python Software Foundation</a></strong> pude viajar y formar parte de la<strong> <a href="http://us.pycon.org/2011/home/">PyCon US 2011</a></strong> en Atlanta, Georgia en marzo de este año. Viaje que disfruté muchísimo como podrán imaginar, siendo yo todo un Python <a href="http://bestwebsiteevar.com/post/589980537/you-are-a-fanboy">fanboy</a>. Pude disfrutar de muchas conferencias muy interesantes que también están disponibles en <a href="http://simas.org.ni/tic-y-sl/articulo/conferencias-en-video-sobre-pythondjango">video online</a>. También de este viaje tengo <a href="https://picasaweb.google.com/adolfo.fitoria/PyconAtlanta2011">fotos</a> aunque de muy mala calidad <img src='http://fitoria.net/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> .</p>
<p>¿Después de dos conferencias faltaba una fiesta no? En abril cumplí otro sueño <img src='http://fitoria.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ver a mi banda favorita, Stratovarius, en vivo y a todo color gracias a que tuvieron una parada en Costa Rica a la cual no dudé ni un momento en asistir. En este viaje me acompañó mi hasta entonces novia <a href="http://twitter.com/hask">@hask</a>. <a href="http://i.imgur.com/UmwyX.jpg">Foto acá</a>.</p>
<p>Luego vino junio&#8230; y me casé! Una de las decisiones mas importantes que he podido tomar en mi vida <img src='http://fitoria.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  (les debo las fotos para mas tarde).</p>
<p>A solo dos días nuestra boda, fuí invitado a formar parte del equipo de <a href="http://askbot.org">Askbot</a> que ahora ademas de ser un proyecto de software libre con el que ya había colaborado anteriormente, <a href="http://www.startupchile.org/supprojects/askbot/">fué aprobado</a> dentro del programa <a href="http://startupchile.org/">StartUp Chile</a>. Así es nos vamos a Chile desde agosto. Ya me faltan pocos días para estar en mi querida Nicaragua, toca comer todo lo que se añora: rosquillas, quesillo, gallopinto, carne asada, tajadas con queso, pollo Tip Top(<a href="http://www.laprensa.com.ni/2011/07/07/economia/65915">espero que abran en Chile pronto</a>), quesos, cremas, nacatamales y demás comidas típicas que no veré en mucho tiempo. <img src='http://fitoria.net/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>Creo que eso es todo lo que tengo que contar, me despido mas sin antes agradecer a todas las personas que lo hicieron posible, a <a href="http://simas.org.ni/">SIMAS</a> y todo su equipo, por ser mi primer empleador y ser un lugar tan cool para trabajar.</p>
<p>kthxbai.</p>
]]></content:encoded>
			<wfw:commentRss>http://fitoria.net/2011/07/2011-%c2%bfano-de-viajes-o-de-cambios/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>¿Cómo aprender Python sin morir en el intento?</title>
		<link>http://fitoria.net/2011/05/%c2%bfcomo-aprender-python-sin-morir-en-el-intento/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25c2%25bfcomo-aprender-python-sin-morir-en-el-intento</link>
		<comments>http://fitoria.net/2011/05/%c2%bfcomo-aprender-python-sin-morir-en-el-intento/#comments</comments>
		<pubDate>Mon, 09 May 2011 16:36:59 +0000</pubDate>
		<dc:creator>Adolfo Fitoria</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[planeta]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://fitoria.net/?p=583</guid>
		<description><![CDATA[¿Cómo aprender Python sin morir en el intento? View more presentations from Adolfo Fitoria Charla rápida que di en la parada del Librebus en Granada]]></description>
			<content:encoded><![CDATA[<div style="width:425px" id="__ss_7896319"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/AdolfoFitoria/cmo-aprender-python-sin-morir-en-el-intento" title="¿Cómo aprender Python sin morir en el intento?">¿Cómo aprender Python sin morir en el intento?</a></strong> <object id="__sse7896319" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=python-librebus-110509102014-phpapp01&#038;stripped_title=cmo-aprender-python-sin-morir-en-el-intento&#038;userName=AdolfoFitoria" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse7896319" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=python-librebus-110509102014-phpapp01&#038;stripped_title=cmo-aprender-python-sin-morir-en-el-intento&#038;userName=AdolfoFitoria" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/AdolfoFitoria">Adolfo Fitoria</a> </div>
</p></div>
<p>Charla rápida que di en la parada del <a href="http://librebus.org/">Librebus en Granada</a></p>
]]></content:encoded>
			<wfw:commentRss>http://fitoria.net/2011/05/%c2%bfcomo-aprender-python-sin-morir-en-el-intento/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>¿Qué pasará en el futuro con mis datos?</title>
		<link>http://fitoria.net/2011/01/%c2%bfque-pasara-en-el-futuro-con-mis-datos/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25c2%25bfque-pasara-en-el-futuro-con-mis-datos</link>
		<comments>http://fitoria.net/2011/01/%c2%bfque-pasara-en-el-futuro-con-mis-datos/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 15:09:23 +0000</pubDate>
		<dc:creator>Adolfo Fitoria</dc:creator>
				<category><![CDATA[curiosidades]]></category>
		<category><![CDATA[planeta]]></category>

		<guid isPermaLink="false">http://fitoria.net/?p=576</guid>
		<description><![CDATA[Esa pregunta me vengo haciendo desde hace algún tiempo, tengo en mi cuarto una computadora muy viejita de aquellas de 33Mhz con botón turbo incluido, corre(por que aún funciona) alguna versión de DOS y Win 3.1 nostalgia aparte no hay &#8230; <a href="http://fitoria.net/2011/01/%c2%bfque-pasara-en-el-futuro-con-mis-datos/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Esa pregunta me vengo haciendo desde hace algún tiempo, tengo en mi cuarto una computadora muy viejita de aquellas de 33Mhz con botón turbo incluido, corre(por que aún funciona) alguna versión de DOS y Win 3.1 nostalgia aparte no hay archivos míos en esa PC pero si hay una pequeña colección de juegos clásicos de la época, con mucha nostalgia quiero rescatar los juegos que ahí se encuentran y poderlos usar cosa que aún puedo hacer pero  ¿Que pasará cuando en el futuro ningún sistema se moleste en emular o correr software para esa plataforma?  lo mismo que ha pasado con muchas otros dispositivos de almacenamiento ya no soportados, los <a href="http://es.wikipedia.org/wiki/Archivo:Disco_5.25.JPG">discos de 5.25 pulgadas</a> que leía mi primer compu, sus datos pasaron al olvido como pasará(o pasó ya) con disquetes, CD&#8217;s, DVD&#8217;s y demás cuando sean sustituidos por medios de mayor capacidad.</p>
<p>Todo esto se ha denominado como la <strong>Era oscura digital(Digital dark age) </strong>que sería el tiempo en el que se produzca un vacío de contenido histórico debido a la pérdida de datos guardados en medios digitales obsoletos. El canal de youtube del <a href="http://www.youtube.com/user/ComputerHistory">Museo de Historia de la Computación</a> ha preparado un video sobre este problema.</p>
<p><object width="440" height="272"><param name="movie" value="http://www.youtube.com/v/PSlMzirvsFc?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/PSlMzirvsFc?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="440" height="272"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://fitoria.net/2011/01/%c2%bfque-pasara-en-el-futuro-con-mis-datos/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Taller Django!</title>
		<link>http://fitoria.net/2010/10/taller-django/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=taller-django</link>
		<comments>http://fitoria.net/2010/10/taller-django/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 04:16:49 +0000</pubDate>
		<dc:creator>Adolfo Fitoria</dc:creator>
				<category><![CDATA[django]]></category>
		<category><![CDATA[planeta]]></category>

		<guid isPermaLink="false">http://fitoria.net/?p=567</guid>
		<description><![CDATA[Hoy se llevó a cabo un el primer taller sobre Django en Nicaragua, la cita se dió en SIMAS y estuve compartiendo con los asistentes sobre como hacer una pequeña aplicación de blog en este framework y la experiencia de SIMAS. &#8230; <a href="http://fitoria.net/2010/10/taller-django/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hoy se llevó a cabo un el primer taller sobre <a href="http://www.djangoproject.com/" target="_blank"><strong>Django</strong></a> en Nicaragua, la cita se dió en <a href="http://simas.org.ni/" target="_blank"><strong>SIMAS</strong></a> y estuve compartiendo con los asistentes sobre como hacer una pequeña aplicación de blog en este framework y la <a href="http://www.linuxjournal.com/content/nicaragua-builds-innovative-agricultural-information-system-using-open-source-software" target="_blank">experiencia de SIMAS</a>. Acá les dejo la presentación que utilicé:</p>
<div id="__ss_5409708" style="width: 425px;"><strong><a title="Django" href="http://www.slideshare.net/AdolfoFitoria/django-5409708">Django</a></strong><object id="__sse5409708" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=adolfofitoria-django-101010234831-phpapp02&amp;stripped_title=django-5409708&amp;userName=AdolfoFitoria" /><param name="name" value="__sse5409708" /><param name="allowfullscreen" value="true" /><embed id="__sse5409708" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=adolfofitoria-django-101010234831-phpapp02&amp;stripped_title=django-5409708&amp;userName=AdolfoFitoria" name="__sse5409708" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/AdolfoFitoria">Adolfo Fitoria</a>.</div>
<div style="padding: 5px 0 12px;">Hay algunas <a href="http://www.facebook.com/album.php?aid=550974&amp;id=310311545047" target="_blank">fotos haciendo click acá</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://fitoria.net/2010/10/taller-django/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Django template filter para obtener thumbnails de youtube.</title>
		<link>http://fitoria.net/2010/10/django-template-filter-para-obtener-thumbnails-de-youtube/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=django-template-filter-para-obtener-thumbnails-de-youtube</link>
		<comments>http://fitoria.net/2010/10/django-template-filter-para-obtener-thumbnails-de-youtube/#comments</comments>
		<pubDate>Sat, 16 Oct 2010 17:22:15 +0000</pubDate>
		<dc:creator>Adolfo Fitoria</dc:creator>
				<category><![CDATA[django]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[planeta]]></category>
		<category><![CDATA[softwarelibre]]></category>

		<guid isPermaLink="false">http://fitoria.net/?p=560</guid>
		<description><![CDATA[Acá les dejo un Django template filter para obtener el thumbnail de un video de youtube a partir de su url, ejemplo de uso: &#60;img src="{{video.url&#124;youthumbnail: 's'}}"/&#62; Tiene dos parámetros de tamaño &#8216;s&#8217; para un thumbnail pequeño y &#8216;l&#8217; para &#8230; <a href="http://fitoria.net/2010/10/django-template-filter-para-obtener-thumbnails-de-youtube/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Acá les dejo un Django template filter para obtener el thumbnail de un video de youtube a partir de su url, ejemplo de uso:</p>
<pre><span style="font-family: monospace;">&lt;img src="{{video.url|youthumbnail: 's'}}"/&gt;</span></pre>
<p>Tiene dos parámetros de tamaño &#8216;s&#8217; para un thumbnail pequeño y &#8216;l&#8217; para un thumbnail grande.</p>
<p><script src="http://gist.github.com/630042.js?file=youthumb.py"></script></p>
<p><a href="http://djangosnippets.org/snippets/2234/">Ver en DjangoSnippets</a></p>
]]></content:encoded>
			<wfw:commentRss>http://fitoria.net/2010/10/django-template-filter-para-obtener-thumbnails-de-youtube/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

