JCeb's Blog

Programación, investigación, proyectos, vida y mas…

Posts Tagged ‘python

If corto en python

with 3 comments

Seguramente si programaron en C utilizaron el if corto, ¿cual es ese?, bueno es esto:

saludo = lang=='es' ? 'HOLA' : 'HI'

Lo anterior es equivalente a:

saludo = ''
if(lang=='es'){
    saludo = 'HOLA'
}
else{
    saludo = 'HI'
}

Bueno en python existe un if corto igualmente, solo que un poquito diferente:

saludo = 'HOLA' if lang=='es' else 'HI'

Lo anterior equivale a:

saludo = ''
if lang=='es':
    saludo = 'HOLA'
else:
    saludo = 'HI'
Anuncios

Written by JCeb

6 junio, 2011 at 11:35 pm

Publicado en Uncategorized

Tagged with , , , ,

Graficación de modelos en django

with 2 comments

Hola pues este post es para compartir una herramienta muy padre que he encontrado para gráficar los modelos de nuestra base de datos que hayamos definido en nuestro proyecto de Django, bueno en sí primero se necesita django que es el framework completo, django extensions que son agregados para django, como funciones nuevas para manage.py que es nuestro script con el que podemos administrar el proyecto. Un paquete más que necesitamos instalar pygraphviz. Si estamos en un ambiente linux, nuestro administrador de paquetes ya debe de contenerlos en los repositorios, si no aquí les dejo los enlaces.

http://github.com/django-extensions/django-extensions

http://pypi.python.org/pypi/pygraphviz

lo unico que tienes que hacer es en tu proyecto escribir en terminal

$ python manage.py graph_models application -o file.png

Los resultados son realmente increibles y nos facilitan la graficación de los modelos al momento de entregar reportes y documentación sobre nuestros proyectos.

Saludos.

Written by JCeb

23 abril, 2010 at 12:08 am

AutoDown

leave a comment »

Hola, pues esto es para compartir que el día de ayer estuve en la chamba en ASI, desarrollando en Python un script para descargar automaticamente unos datos a los cuales no tenemos acceso por alguna via decente, por lo que tuvimos que recurrir al hacking XD, por lo que escribí unos scripts para hacer el logeo y las descargas de paginas html que tenian la información y una vez descargadas convertirlas a datos tal cual y ponerlos en una base de datos para su correcto y adecuado uso.

Cabe mencionar que son aproximadamente 300 paginas que los administrativos consultan diario y que luego la analizan e insertan en una base de datos. ¿Porqué diario?, porque tienen que estar sincronizados con los datos en MTY o GDL, ya ni recuerdo, en fin.

Les dejo una imagen del script por cuestiones de confidencialidad, pero les comparto en si el funcionamiento básico, por si quieren practicar. Las bibliotecas que use son urllib, urllib2 y cookielib.

#Llamamos las bibliotecas que nos seran utiles
import urllib,urllib2,cookielib

#Inicializamos un objeto que nos
#servira para poder abrir conexiones con una pagina
#y poder guardar las cookies que nos mande esta pagina
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))

#Creamos una variable con nuestros datos que pasaremos al sitio de login por post
data = urllib.urlencode({'username':'user','password':'secret'})

#Realizamos el acceso a la pagina de login pasandole nuestros datos de usuario
conexion = opener.open('http://url/to/login',data)

#Leemos la pagina y nos imprimira el codigo html
print conexion.read()

#Luego para bajar una pagina que te pide que ya te hayas logeado previamente,
#vuelves a conectarte
conexion = opener.open('http://url/privated/to/read')

#Obtenemos el html de la página y listo
print conexion.read()

#para concluir, cierras la conexion
conexion.close()

Written by JCeb

14 abril, 2010 at 4:17 am

Publicado en Desarrollo, Investigación, Ocio

Tagged with , , , ,

Se demora How2

leave a comment »

¿Qué es How?

Pues con la noticia de que no me han confirmado los compañeros con quienes pagare los 10 dolares mensuales del Zeus.

En Zeus es donde alojaremos los sistemas de la empresa que unos compañeros y yo queremos fundar. Sin presiones, lo haremos divertido y esperemos si jale super bien.

Bueno el chiste de todo esto es que how2 no lo puedo subir, ya que aun no nos hemos dado de alta en el Zeus XD. Pero pronto, espero y esta semana comencemos con los preparativos para poner allí arriba how2 y otras cositas que he desarrollado para ustedes.

How2 estará disponible en GITHUB para recibir colaboraciones, les mantendré informados sobre lo que acontezca al rededor de How2.

Aquí les dejo más imagenes de How2

Y una más =D

Written by JCeb

13 abril, 2010 at 4:52 am

De vuelta, ahora con How2 =)

with one comment

Hola, me ausente un tiempo, pido disculpas, sé que recaude algunos seguidores y contribuyentes a quienes desatendí por un tiempo, pero he vuelto, ya que realmente no pude mantener un blog aparte, por cuestiones de tiempo, continuare usando este que amablemente me ofrece wordpress.

¿Qué he hecho en estos meses que me desaparecí?, bueno he seguido programando en Python, comence a desarrollar en Django, llevo una excelente experiencia con este Framework. Tanto que he comenzado desde hace aproximadamente 1 mes con un sistema llamado How2, para dar asistencia y hacerlo integrable con blogs, sitios web y sistemas de redes sociales que han estado dando mucho de que hablar.

Y… ¿Qué hace How2?

Bueno es un sistema que te permite publicar ayuda a manera de How to, como por ejemplo “¿Cómo validar fecha en JavaScript?” ó ¿Cómo preparar cochinita?”. How2 espero llegue a ser el gran deposito de todas estas cosas que mucha gente se pregunta y que desea leerlas en cualquier momento. Una de las ventajas es que el sistema podrá ser visto desde cualquier dispositivo, bueno al menos ese es uno de los objetivos de How2, que donde sea puedas acceder a esta información.

Bueno, la parte más hermosa, donde se presume lo que tiene How2 hasta ahora jeje! :P.

En How2 puedes:

– Escribir How2s, editarlo, verlos, buscar How2s, seleccionarlos como preferidos, sugerir al autor modificaciones a cierta parte del How2 o agregar información que haga que el How2 sea mucho mejor.

– En How2 puedes traducir tus How2s a otros idiomas si lo deseas, si no quieres How2 te ofrece una alternativa, usando google api language, para que cualquier usuario elija su idioma y traduzca el How2 a su idioma, claro que no podemos confiar al 100% en google, sin embargo cuando hagas tu traducción podras tener una pequeña sección donde estara el traductor de google para ayudarte.

– How2 ofrece una interfaz sencilla donde puedes escribir tus How2s, sugerir How2s para que otras personas los escriban, ya sea de manera privada o pública, así también podras sugerir categorias al equipo administrador, para que integre al sistema tras una evaluación de la categoria.

– How2 ofrece acceso via email o username, confirmación de tu cuenta de correo. encriptación de tu contraseña. Para inscribirte no te pide todos tus datos, unicamente tu nombre de usuario, password y correo electrónico. Claro si deseas dar todos tus datos, una vez en tu cuenta puedes modificar tu perfil.

– Puedes enviar invitaciones a tus contactos con cuenta en gmail. Puedes enviar invitaciones personalizadas a contactos en particulas, buscar gente en How2.

– Puedes ver todos los How2s de tus amigos, accediendo a su portal.

Son algunas de las cosas que tiene How2 hasta ahora, estoy trabajando realmente duro para publicar algo estable y comenzar el reclutamiento de personas al desarrollo del sistema.

No he querido publicarlo debido a que no se encuentra en un estado ingenieril adecuado para aceptar colaboraciones. Estoy estableciendo lo básico y modulandolo de manera que cuando comiencen a llegar las contribuciones de código los que apoyen entiendan el código.

Bueno esto es lo que ando haciendo y espero sigan pasando por aquí los lectores. Ya que seguire llenando este blog con información relevante como siempre. Gracias.

Written by JCeb

14 febrero, 2010 at 9:39 pm

QServ – Qonfigure your server

leave a comment »

El día de hoy publico el siguiente artículo que es parte de la documentación de QServ, estoy organizando los directorios para empaquetar QServ y publicarlo mañana con el primer modulo QSNFS. Gracias por su atención y aquí les dejo el artículo.

logo

QServ – Qonfigure your server

QServ es una aplicación encargada de la configuración de servidores sobre Debian GNU+Linux y basados como Ubuntu, Knoppix y otros.

QServ tiene como objetivo brindar al usuario una interfaz sencilla para realizar la configuración de servidores.

QServ al momento de ser programado se pensó en aprovechar las herramientas de programación rápida que existen actualmente como son Qt4 designer y Pyuic4. QServ es un sistema modular que su proceso de desarrollo debe ser rápido, ya que aprovecha de manera eficiente estas herramientas que se mencionan.

Versión 0.1

Pantalla principal de QServ 0.1

Pantalla principal de QServ 0.1

La versión 0.1 de QServ es el primer logro del sistema, contiene el modulo QSNFS para la configuración de servidores NFS y contiene asi tambien en el modulo QSNFS caracteristicas interesantes como lo es los botones de control del daemon nfs-kernel-server para encenderlo y apagarlo y el boton de instalación para el servidor en caso de que no se cuente con él.
QServ en la versión 0.1 implementa varias herramientas de sistemas like unix modernos, como es bash, xterm, python, qt4, nfs, cat, echo, etc.

¿Como está desarrollado QServ?

Interfaces de usuario:
La interfaz de usuario es desarrollada en Qt4 designer, estas interfaces se guardan en los modulos y un script llamado generatePys.sh se encarga de convertir los archivos de interfaz gráfica a código de python gracias a pyuic4. Es necesario que conforme se vayan añadiendo modulos a QServ, se vayan listando dichos .ui en el script.

Codigo fuente de la interfaz:
Una vez generado el código fuente a partir del .ui, este archivo no se toca para nada, ya que solamente nos servira como una plantilla que contendrá todo lo que necesitamos manejar en la interfaz gráfica.

Controlador de la interfaz generada:
Una vez que tenemos el archivo .py que se generó de nuestro .ui procedemos a hacer una clase que herede de nuestro archivo .py para que podamos acceder a los objetos dentro de nuestra plantilla.

Cabe mencionar que al programar para QServ se tiene una ventaja y es que la interfaz gráfica se puede incrementar en componentes e incluso modificar algunas de las caracteristicas de los elementos ya existentes. Pero nuestros controladores seguiran funcionando de la misma manera gracias a la arquitectura de nuestra aplicación.

generatePys.sh

El script generatePys va listando los .ui y la salida que dará pyuic4, la estructura del comando en el script es:

pyuic -o salida.py -x entrada.ui

Así listando cada archivo .py que se desee generar apartir del .ui.

Para programar modulos para QServ se recomienda consultar las siguientes ligas:

Bulma
ZetCode
Diotavelli
Facus
Huihoo

TODO:

Para hacer, QServ tiene el objetivo de tener los siguientes modulos para la configuración de diversos servidores:
–    Servidor de email
–    Servidor Samba
–    Servidor LDAP
–    Servidor FTP
–    Servidor Web
–    Servidor Antivirus y antispam
–    Servidor DHCP
–    Servidor NFS *
–    Repositorio Linux
–    Conmutador telefónico

Written by JCeb

12 abril, 2009 at 5:20 pm

Publicado en Uncategorized

Tagged with , , , ,