Archivo

Archive for the ‘Desarrollo Web’ Category

Git Pull usando cronjobs

24 abril, 2015 Deja un comentario

Hoy en mi lugar de trabajo, necesitaba dar una solución rápida y TEMPORAL, al método de actualizacion del código de un sitio web que administramos, ciertamente todo el código se lleva en git, y la versión en el servidor de producción es resultado de un “git clone repo”, pero como en un punto de desarrollo, se hacen commits a producción cada 20 minutos, es algo fastidioso ingresar por ssh, buscar la carpeta y generar un git pull, por lo que se decidió crear un cronjob con esta configuración.

*/1 * * * * cd /var/www/site && /usr/bin/git pull origin master

esto posicionara el script en el directorio de proyecto y realizara un git pull a la rama master, claro esta solución es MUY temporal, no es la mas óptima, lo mejor es crear un repositorio con git –bare, y a travez de hooks actualizar el servidor, sin embargo esa es una opción que te tomaría unos 10 minutos hacerla y esta solo unos 10 segundos…

Mi primer VPS – 001

20 agosto, 2014 8 comentarios

Network servers in a data center. Swallow depth of Field

Quien desee hoy ingresar al mundo del desarrollo web se enfrenta con un gran problema, los grandes frameworks que existen hoy en día prácticamente todos requieren de un VPS, ya que no es posible tener en un share host, una aplicación de Django o Ruby on Rails, y no todos los frameworks de PHP te permiten trabajar en un sharehost o no son tan fáciles instalar, muchas veces perdiendo algunas de sus propiedades, por lo que cuando comienzas a desarrollar para la web, como alguien que pretende tener éxito, un VPS será tu mejor aliado.

El primer paso es adquirir un VPS, para un Venezolano es algo complejo, por que hay 2 opciones o utilizas tu cupo cadivi, elemento altamente preciado, o buscas alguno que se pueda pagar en Bolivares (VEF), el problema es que su costo mensual es algo elevado si sera nuestro primer VPS y probablemente sea para pruebas por un largo tiempo.

En Venezuela tristemente son MUY POCOS los proveedores serios de VPS, personalmente he pasado por 3 empresas venezolanas que son de las que hablaré en este artículo, la PEOR de todas fue iguanahosting empresa que hoy no existe, la cual fue un desastre al momento de su desaparición, ya dejaron a muchos clientes al aire, sin respuesta alguna sobre el futuro de sus servicios, simplemente un día cerraron todo y se fueron bajo una fuerte polémica, otra que use alguna vez fue caracashosting pero su atención realmente da mucho que hablar… y hoy en dia estoy con venehosting, donde actualmente tengo un plan VPS de pruebas, aun no salen al público, pero esta muy bien hasta los momentos, la verdad sin ninguna queja, y otra empresa con la que no tengo experiencia pero he escuchado buenos comentarios es wnetve, no tengo experiencia personal con ellos, pero tienen planes muy economicos y tengo amigos que les ha ido bien con ellos…

Esta es la primera decisión que deben tomar al momento de adquirir un vps, ahhh y si les ofrecen un plan extra con cpanel, y cosas de esas, simplemente digan que NO, con una consola pueden cambiar el mundo 😀

Categorías:Desarrollo Web, VPS

Agregar usuario administrador de Manera automatica al ejecutar manage.py syncdb

1 octubre, 2013 1 comentario

Frecuentemente al trabajar con django, sobre todo a los inicios del proyecto, es necesario reescribir toda la base de datos, borrarla y volverla a generar, esto se puede volver molesto mas cuando cada vez debemos escribir los datos iniciales del usuario administrador, escribir id, correo, y contraseña.

Pero django es tan divertido que nos provee 2 metodos que nos ayudaran mucho a evitar este problema, el primero es dumpdata, el cual nos permite exportar toda la data de una aplicacion a un archivo json, del cual nos valdremos para cargar el usuario cada vez que lo necesitemos.

y el Segundo es el parametro: –noinput del syncdb, el cual busca automaticamente si existe algun arhcivo de data_inicial para cargarlo a la base de datos.

el proceso es algo asi:
manage.py dumpdata --indent=2 auth > initial_data.json
esto nos genera el archivo initial_data.json el cual entre otras cosas nos guarda los datos del administrador.

Luego de esto debes ejecutar:
manage.py syncdb --noinput
Este regenerara la base de datos, y la llenara con los parametros del archivo initial_data.json.

Nota:
Sabemos que existe una libreria llamada South pero para ciertos casos, este metodo mucho mas manual, es mas util y sobre todo menos complicado.

Django en Windows y no morir en el Intento

20 septiembre, 2013 11 comentarios

Por cuestiones de la vida, debo tener paralelamente a mi entorno de Desarrollo en Ubuntu GNU/Linux, un equipo para seguir desarrollando mis proyectos de manera paralela en Windows 7 Profesional, y la verdad ha sido un dolor de cabeza poder instalarlo correctamente.

La cantidad de tutoriales son pocos y vagos, espero con este solucionarle la vida a alguna otra persona que tenga el mismo problema, sin embargo recomiendo por MUCHO el desarrollo bajo Ubuntu o cualquier distro basada en Debian, por que el tiempo de preparacion del entorno sera por mucho menor, y mas optimo, pero como la vida no es perfecta, alguna veces nos tocara hacer esto.

Lo primero es descargar el Instalador de python correspondiente para tu arquitectura, en mi caso: Python 2.7.5 Windows X86-64 Installer

Simplemente como toda aplicacion de Windows comenzamos a hacer clicks en siguiente, siguiente, siguiente…

python001

python002

python003

python004

python005

En este punto, si abrimos la “consola” de Windows (tecleamos cmd en el menú inicio). Nos salta el primer error:

C:\Windows\System32>python
"python" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.

C:\Windows\System32>

Googleando un poco es un problema comun, la solución es realtivamente sencilla y es agregar un par de direcciones al Path de Sistema Windows

python006

python007

python008

python009

Y al final de esta linea agregar:

C:\Python27\;C:\Python27\Scripts;

La razon es simple, Windows no reconoce por si pyton como aplicacion por lo tanto no sabe ejecutarlo, ahora con esto si podria hacerlo.

C:\Windows\System32>python
Python 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print "Hola Mundo!!"
Hola Mundo!!
>>> exit()

C:\Windows\System32>;

Ya sabemos que tenemos python funcionando, pero python solo no es suficiente, ahora que podemos hacer??? deberiamos tener al menos virtualenv, para esto primero debemos instalar pip, nos dirigimos al portal, y leemos las instrucciones de instalación.

Lo primero es descargar ez_setup.py y ejecutarlo.

D:\>python ez_setup.py

Y Ahora ejecutamos get-pip.py

D:\>python get-pip.py

Y listo ya deberiamos tener pip instalado, con esto podemos instlar virtualenv

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

ejecutamos:

D:\>pip install virtualenv

Ya con esto tenemos instalador virtualenv, por lo que podremos crear nuestro primer entonrno virtual

D:\django\tutorial>virtualenv kernel

Yo por costumbre propia tiendo a nombrar mis entornos virtuales como “kernel”, esto es solo algo personal, ustedes pueden llamar a su entorno como deseen.

D:\django\tutorial>kernel\Scripts\activate.bat
(kernel) D:\django\tutorial>

Como podran notar el nombre de nuestro entorno virtual esta entre parentesis y al comienzo de nuestra linea, esto significa que esta activado.

Para verificar las librerias que tenemos instalados en cualquier instante del desarrollo solo debemos escribir “pip freeze”

(kernel) D:\django\tutorial>pip freeze

(kernel) D:\django\tutorial>

Ahora que vemos que no tenemos absolutamente nada en nuestro sistema, comenzemos por instalar django en su ultima versión.

(kernel) D:\django\tutorial>pip install django -U

Verificamos que se python se haya instalado correctamente en el sistema.

(kernel) D:\django\tutorial>python
Python 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
(1, 5, 4, 'final', 0)
>>> exit()
(kernel) D:\django\tutorial>

Ya temenos python instalado en nuestro entorno, asi como django en su ultima versión, todo va muy bien, ahora solo debemos generar nuestro proyecto.

Normalmente vemos tutoriales donde nos indican que solamente debemos escribir en nuestra consola:

(kernel) D:\django\tutorial>django-admin.py startproject _NombreDeTuProyecto_

Sin embargo, al hacer esto, el resultado es:

(kernel) D:\django\tutorial>django-admin.py startproject tutorial .
Traceback (most recent call last):
  File "D:\django\tutorial\kernel\Scripts\django-admin.py", line 2, in <module>
    from django.core import management
ImportError: No module named django.core

(kernel) D:\django\tutorial>

Aqui yo estuve congelado un par de días, y realmente por eso es que me anime de escribir este tutorial, luego de muchas pruebas, cambios, y demas… la solucion es muy simple, escribir la ruta absoluta donde se encuentra el django-admin.py y escribir python para formar al interprete…. quedando algo como esto.

(kernel) D:\django\tutorial>python d:\django\tutorial\kernel\Scripts\django-admin.py startproject tutorial .

(kernel) D:\django\tutorial>

y con esto solo debemos ahora arrancar nuestro servidor para verificar que nuestro django este correctamente instalado.

(kernel) D:\django\tutorial>python manage.py runserver
Validating models...

0 errors found
October 14, 2013 - 12:24:23
Django version 1.5.4, using settings 'tutorial.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
[14/Oct/2013 12:24:36] "GET / HTTP/1.1" 200 1956

runserver

Y listo, ya puedes comenzar a programar tu aplicación, pero como recomendacion final, trabajar con django en windows puede ser un gran dolor de cabeza, por mucho les recomiendo usar alguna distro de GNU/Linux para esto, lo que aqui hiciemos en 30 minutos, en ubuntu lo hacemos en 5 y con mucho menos esfuerzo.

Saludos y Happy Codding

Categorías:Desarrollo Web, Django