Django Suite II: Configurando nuestro proyecto de manera correcta.

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 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.

Normalmente al iniciar una aplicación creamos un proyecto en blanco con el comando startproject que nos crea una carpeta con los archivos necesarios para iniciar.

Por defecto estas configuraciones tienen ciertos valores 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.

Acá algunos trucos para hacer estas configuraciones de manera dinámica y distribuibles para usarse en sistemas de control de versiones:

Separación del archivo settings.py

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“settings_local.py” acá deberán ir estas configuraciones:

  • DATABASES
  • ADMINS
  • DEBUG
  • TEMPLATE_DEBUG
  • SECRET_KEY (si lo vas a hacer código libre y público)
  • Claves privadas en caso de usarse( ej. alguna clave de API de terceros)
  • Configuraciones de correo.


Como prodrán ver acá incluyo una configuración extra llamada PROJECT_DIR que usaremos luego. Para mandar a llamar este nuevo archivo en el inicio de nuestros settings.py incluimos la siguiente línea:

from settings_local import *

Dinamizando las rutas de archivos estáticos.

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

Ejemplo:

gitignore

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 ejemplo acá será similar para otros sistemas.

Presentando django-initkit.

Para no hacer todo estas configuraciones cada vez que tengamos que iniciar un proyecto he creado django-initkit 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 Pypi (pip install django-initkit) o haciendo checkout desde github.

Su uso es igual a django-admin.py, nada más que el nombre del comando es django_initkit.py

Ejemplo:

django_initkit.py startproject foo

Espero que les haya gustado el post de hoy, pueden sugerir mas temas en los comentarios.

Document Freedom Day Nicaragua 2009 (actualizado)

Por segundo año consecutivo Nicaragua será sede del Día de la libertad de los documentos (Document Freedom Day) y esta vez GUL-NIC estará en 4 universidades(UAM, UENIC, UPOLI, UHISPAM) de forma simultánea desde las 9 de la mañana con conferencias y demostraciones de Software Libre. Para mas información de los lugares y horas has click en este enlace.

Document Freedom Day Nicaragua 2009
Document Freedom Day Nicaragua 2009

PD. Yo estaré en la UPOLI. UENIC
DFD del año pasado.

UPDATE: Fotos de las sedes y descarga las diapositivas aca.

Fotos de UAM,

DFD09-UENIC
DFD09-UPOLI

Sistema de Pre-Registro para el ECSL

La comunidad de software libre de Nicaragua actualmente está organizando en conjunto con comunidades hermanas de centroamérica el Primer Encuentro Centroamericano de Software Libre a realizarse en Junio en Estelí. Es un esfuerzo bien grande y ya se está organizando toda la logística de este evento dirigido a los miembros de comunidades de software libre.

Por mi parte he colaborado con la elaboración de un pequeño sistema de pre-registro para el evento. Fue desarrollado con Django y liberado bajo licencia MIT, el código fuente esta disponible en este enlace.

pre-registro-ecsl

Sprint de traducción de Django.

Django es un web framework basado en Python que permite hacer aplicaciones web realmente rápido. Consta de un mapeador orbjeto-relacional, interfaz administrativas automáticas, soporte de internacionalización, URL’s limpias,sistema de plantillas y muchos más poderes mágicos.

Desgraciadamente todavía no se cuenta con el 100% de la documentación oficial traducida al español por lo cual la comunidad de Django en español esta organizando un Sprint de Traducción entre del 9 al 11 de enero los invito a participar de esta experiencia en la cual la comunidad nicaragüense ya ha dicho presente en ocasiones anteriores.

UPDATE: Todas las instrucciones se encuentran en este enlace.

PD. Personalmente ayer traduje una aplicación para django llamada Django-Schedule las traducciones ya estan en el trunk del proyecto.

Cómo usar emesene y Amarok 2?

Emesene es en mi opinión el mejor cliente de mensajería instantánea para el protocolo MSN. Actualmente trae el plugin CurrentSong que imita el “lo que estas escuchando” del Live Messenger desgraciadamente no soportaba Amarok 2 y me puse a travesear un rato hasta que hice que funcionara. La razón por la cual no funcionaba antes con Amarok2 es que la versión anterior usa DCOP y el actual Amarok usa D-BUS.

Ahora como lo puedes usar?

Simplemente descarga este archivo comprimido luego descomprimes su contenido en  /usr/share/emesene/plugins_base/currentSong/ reinicias emesene y listo :D

Si hiciste todo bien se debería de ver así:plugin-funcionando1
plugin-funcionando

Actualmente estos cambios ya fueron puesto en el trunk de emesene en sourceforge y seguramente vendrán incluidos en una próxima versión.

De todo un poco

Querido blog te he abandonado un rato :( en todo este tiempo estuve haciendo exámenes y proyectos de curso en fin de todo un poco.

En otros asuntos estoy de vacaciones!!!! :) voy a aprovechar este tiempo para aprender algo nuevo y creo que sera AJAX. Entre otras cosas reforzaré RoR y Django tambien para no olvidarlos. También llevaré a cabo otros proyectos personales que ojalá se concreten :) .

Sin nada mas que decir me despido.

Review de Kubuntu 8.10 Intrepid Ibex

Bueno a una semana de estar usando Kubuntu Intrepid les puedo decir que sobrepasó mis espectativas. :) KDE 4.1.2 está genial, mejoró mucho su estabilidad que en la versión 4.0 realmente dejaba mucho que desear. El upgrade lo relicé por medio de la actualizacion online

Puntos Positivos:

  • Mejoró integracion de KDE 4.1 con los botones especiales de laptops (volumen, play, pause, etc)
  • Es rápido
  • Ya incluye el manejador de energía para kde4 (guidance-power-manager) que antes tenia que cargarse manualmente mediante un script.
  • Actualización de casi todos los programas en Qt3 pasaron a nueva vida con Qt4.
  • Muy buena apariencia.
  • El panel de configuraciones mejoró.
  • Efectos de escritorio por defecto.
  • Dolphin muy superior a su antecesor.

Puntos negativos:

  • Desmejoró levemente integracion con aplicaciones GTK.
  • Amarok 2 beta aun se cae
  • Algunos plasmoids tienen bugs.
  • El Knetwork Manager tiene algunos bugs.
  • El splash de arranque no avanza si no precionas una tecla (me pasa a mi y a otro amigo solamente)
  • Todavía no hay tanta integración entre aplicaciones como en KDE 3.
  • No trae Ooo 3.0 (agregable via repo)

El obligado Screenshot:

SFD Nicaragua 2008 todo un éxito!!

Con una gran asistencia de publico se llevo a cabo el Día de la Libertad del Software en Nicaragua en el cual se registraron oficialmente 713 personas aunque llego un publico mucho mayor.

Se realizaron 25 instalaciones de las 5 distros con grupos de usuario en Nicaragua (ubuntu, fedora, suse, debian, mandriva). Se realizaron talleres a los cuales asistieron 120 personas el mas solicitado fue “Como crear un sitio web” por Jose Ernesto Davila. Se repartieron 500 carpetas con informacion del Software Libre, los grupos de usuarios y un CD con todas las conferencias y los talleres ademas de aplicaciones libres incluidas.

El área de juego estuvo súper animada con un torneo de Frets On Fire y de Urban Terror.

Inscribete en los talleres del Software Freedom Day Nicaragua 2008!

Las inscripciones están abiertas para los talleres del Software Freedom Day Nicaragua 2008 para el próximo sábado 20 de Septiembre en la UCA.
Para inscribirse simplemente ve a http://registro.linuxtour.org/ y luego dar clic en la imagen del taller, posteriormente podrás ver la lista de talleres y si gustas puedes inscribirte desde ahí.

Esta aplicación esta disponible libremente bajo licencia GPL. Pueden ver mas en:

SFD-REG en Launchpad: acá puedes ver mas información y reportar bugs, por problemas internos de Launchpad no pude seguir actualizando el código.

SFD-REG en Gitorious: acá si esta actualizado el código con todos los cambios a la fecha y pueden clonar el repositorio vía Git

PD:

Gracias a Byron por todo el arte que se uso en la aplicacion