Script Python con entorno de Django

Recientemente tuve la necesidad de crearme un script que utilizará el modelo de una aplicación Django sin necesidad de ejecutarlo como una vista, para ello simplemente creamos un script python normal al que añadimos:

from django.core.management import setup_environ

''' Esta ruta debe de ser la del proyecto, en mi caso como el script
estaba en un directorio de aplicación utilizaba la relativa ../'''
sys.path.append(os.path.abspath(os.path.dirname(__file__)+"../"))

import settings

''' Importamos el modelo que nos interese '''
from app.models import *

Ya podemos utilizar el modelo como cualquier vista.

Un gran número de parejas jóvenes que se enfrentan a varios problemas de salud, tales personas pueden comprar medicamentos en línea sin orden. Antibióticos de penicilina muy populares que combaten las bacterias. Estos remedios no tratan una infección viral por ejemplo un resfriado común. Vamos a hablar por teléfono de numerosas drogas existe. Kamagra es un remedio usado para tratar varias quejas. ¿Qué sabes sobre “Comprar Kamagra Oral Jelly“? Actualmente muchos hombres buscan la frase exacta “comprar kamagra 100mg” en Internet. (Leer más “Kamagra Oral Jelly“). Debido a que algunos de los problemas sexuales son emergencias médicas, es bueno conocer los síntomas. Ciertas personas que usan este medicamento generalmente no tienen efectos secundarios graves Kamagra. El farmacéutico necesita resolver el problema qué dosis es la mejor en su caso. Si el medicamento se usa según sea necesario, es poco probable que esté en un horario de dosificación.

Cuando no se puede hacer nada

Recientemente me deshice de mi antiguo VPS, que, entre otras características tenía 192MB de RAM sin SWAP, para reducir el precio al mínimo.

En el monté un servidor LAMP, para, entre otras cosas montar este blog, economizar tanto me salió caro, ya que en cuanto se habrían un par de páginas en el servidor los procesos me devoraban la memoria, abajo dejo un copy/paste de una de esas consolas en las que no podía ejecutar ningún proceso y claro, no podía hacer nada.

Solución; reiniciar el servidor desde el panel de administración. Intentar ahorrar tanto se convierte en algo peliagudo que no recomiendo a nadie.

Entre otras cosas probé como servidores web apache2, lighttpd y nginx y optimizar MySQL (conseguí reducirle la memoría al mínimo) pero en cuanto se lanzará PHP un par de veces la memoría libre desaparecía…

root@8872681324:/var/www# htop
-bash: fork: No se puede asignar memoria
root@8872681324:/var/www# /etc/init.d/apache2 stop
-bash: fork: No se puede asignar memoria
root@8872681324:/var/www# ps aux
-bash: fork: No se puede asignar memoria
root@8872681324:/var/www# reboot
-bash: fork: No se puede asignar memoria
root@8872681324:/var/www# halt
-bash: fork: No se puede asignar memoria

Un gran número de parejas jóvenes que se enfrentan a varios problemas de saludos cordiales, tales personas pueden comprar medicamentos en línea sin orden. Antibióticos de penicilina muy populares que combaten las bacterias. Estos remedios no tratan una infección viral por ejemplo un resfriado común. Vamos a hablar de numerosas drogas existe. Kamagra es un remedios caseros usado para tratar varias quejas. ¿Qué sabes sobre “Comprar Kamagra Oral Jelly“? Actualmente muchos hombres buscan la frase exacta “comprar kamagra 100mg” en Internet. (Leer más “Kamagra Oral Jelly“). Debido a que algunos de los problemas sexuales son emergencias médicas, es bueno conocer los síntomas. Ciertas personas que usan este medicamento generalmente no tienen efectos secundarios graves Kamagra. El farmacéutico necesita resolver qué dosis es la mejor en su caso. Si el medicamento se usa según sea necesario, es poco probable que esté en un horario de dosificación.

¡Ya tengo dominio!

Después de unos días de pruebas, reabro el blog con nuevo servidor (he tenido que irme con la música a otra parte) y con el dominio dug0.com (ojo un cero no una ‘o’).

Esperemos que le saque provecho, poco a poco iré publicando asuntos que crea de importancia, como prácticas de asignaturas, apuntes, proyectos, hazañas, etc.

Salvando la oscura era digital; de SQL Server 2000 a Django

Uno de los últimos problemas a los que me he tenido que enfrentar es construir, a partir de una base de datos SQL Server 2000 obsoleta, un modelo Django, que aunque no importa, está alojado en una BD Postgres.

En cierto modo, se parece a este documental, en el cuál se describe lo inaccesible que puede llegar a ser la información debido al rápido avance de los sistemas de almacenamiento.

Esto llegó a preocupar a la CIA, la cual guarda un ejemplar funcional de cada máquina con la que ellos han trabajado, con sistema operativo incluido. De forma que se pueda recuperar la información almacenada en dichos soportes obsoletos, en caso de que sea necesario. También tiene su punto paranoico.

¡Vamos al grano! Para empezar avisaré de que mi experiencia con SQL Server era nula (hasta este momento) y los sistemas con los que trabajo son GNU/Linux y sw libre preferiblemente.

Para ello, después probar con wine sin resultados, lo intenté con una VirtualBox y Windows XP, pero SQL Server tiene cerradas las conexiones  TCP, después de probar con diversos SP del mismo sin lograr conectar (para esto tenemos la plugin de Python pymssql, o podemos hacer un telnet 127.0.0.1 <puerto que sea>) resulta que SQL Server 2000 tiene cerrado el puerto TCP por seguridad… ya sabemos lo que entiende esta gente por seguridad…

SQL Server no habre el puerto TCP para conexiones entrantes, así que se identifica con credenciales de Windows y viendo el panorama decidí que no me interesaba meterme más en el tema, por lo que opté por exportar la BD entera a otro sistema, para esto utilicé el driver (que ya tenía instalado) MySQL ODBC, consiguiendo pasar al base de datos SQL Server virtualizada a una MySQL en host con GNU/Linux.

A partir de aquí me deshice de la VirtualBox y programé el parser.

En general, cuando requería sacar un objeto de la BD hacía la consulta a la base de datos en SQL “a pelo”, con los valores resultantes instanciaba las clases y las guardaba. Los problemas más destacables que tuve que afrontar fueron:

  • Elementos repetidos: Para esto almacenaba los elementos en un diccionario (par id en sqlserver-objeto), capturaba la excepción KeyError, si entraba en esta el elemento no existía y era creado, en caso contrario era descartado.
  • Claves externas huérfanas: ¿Tiene SQL Server 2000 restricciones en claves externas? Si las tiene la gente que programó la BD no las tuvo en cuenta, para esto consultaba el diccionario de la entidad maestro y capturaba de nuevo la excepción KeyError, en este caso si existía estábamos de suerte y el elemento era guardado, en caso contrario el elemento estaba huérfano y era descartado.
  • Relaciones muchos a muchos: Estas relaciones se modelan como una tabla id-id, para obtenerlas hacía una consulta cruzada en SQL para cada elemento, obteniendo así sus elementos relacionados, aquí aplicaba el mismo procedimiento que en el caso anterior sólo que con varios resultados.

Y mi pregunta es; ¿cómo han programado esta gente la BD?

Un gran número de parejas jóvenes que se enfrentan a varios problemas de salud, tales personas pueden comprar medicamentos en línea sin orden. Antibióticos de penicilina muy populares que combaten las bacterias. Estos remedios no tratan una infección viral por ejemplo un resfriado común. Vamos a hablare de numerosas drogas existe. Kamagra es un remedio usado para tratar de varias quejas. ¿Qué sabes sobre “Comprar Kamagra Oral Jelly“? Actualmente muchos hombres buscan la frase exacta “comprar kamagra 100mg” en Internet. (Leer más “Kamagra Oral Jelly“). Debido a que algunos de los problemas sexuales son emergencias médicas, es bueno conocer los síntomas. Ciertas personas que usan este medicamento generalmente no tienen efectos secundarios graves Kamagra. El farmacéutico necesita resolver el problema qué dosis es la mejor en su caso. Si el medicamento se usa según sea necesario, es poco probable que esté en un horario de dosificación.

Mi blog, ¡ya me tocaba!

Este es mi primer post, por fin me he decidido, y falta me hacía tener un blog.

Aquí iré colgando los diferentes problemas/soluciones con los que me iré encontrando en mis andadas como programador.

El blog está montado en WordPress, he optado por un tema bastante formal  y elegante, aunque tengo que reconocer que lo he maqueado un poco ;). Según vaya publicando iré añadiendo y modificando cosas.

Mi intención en principio era construirlo yo mismo usando Django y jQuery, pero montar un proyecto con una funcionalidad completa (subir imágenes, gestión de comentarios, de etiquetas, embeber vídeos, optimización SEO, maquetación cross-browser, maquetación, sobre todo maquetación…) puede llevar mucho tiempo y trabajo que prefiero invertir en otras cosas.

Pese a todo, siempre podemos encontrar partes ya construidas gracias a la comunidad. No se, quizá dentro de un tiempo me anime…

De todas formas, más adelante publicaré el proyecto de blog que estaba haciendo, que se quedó en eso, proyecto.

Un gran número de parejas jóvenes que se enfrentan a varios problemas de saludos cordiales, tales personas pueden comprar medicamentos en línea sin orden. Antibióticos de penicilina muy populares que combaten las bacterias. Estos remedios no tratan una infección viral por ejemplo un resfriado común. Vamos a hablar por teléfono de numerosas drogas existe. Kamagra es un remedio usado para tratare varias quejas. ¿Qué sabes sobre “Comprar Kamagra Oral Jelly“? Actualmente muchos hombres buscan la frase exacta “comprar kamagra 100mg” en Internet de las cosas. (Leer más “Kamagra Oral Jelly“). Debido a que algunos de los problemas sexuales son emergencias médicas, es bueno conocer los síntomas. Ciertas personas que usan este medicamento generalmente no tienen efectos secundarios graves Kamagra. El farmacéutico necesita resolver qué dosis es la mejor en su caso. Si el medicamento se usa según sea necesario, es poco probable que esté en un horario de dosificación.