Python

Documentar Código fuente PHP con ApiGen

Documentar código fuente PHP con ApiGen
Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+

Documentar con ApiGen

Hoy en día, la gran mayoría de la comunidad de programadores consideran como una buena práctica el hecho de comentar el código fuente, siempre y cuando estos comentarios estén estructurados y escritos de forma correcta; para que algún programa pueda ayúdanos a generar rápidamente nuestra documentación.

El principal objetivo de documentar el código fuente es básicamente es para facilitar la identificación y comprensión del funcionamiento o uso de las clases y sus métodos por todos los integrantes de un equipo de desarrolladores.

Hay muchas herramientas que nos pueden ayudar a documentar nuestro código fuente pero esta vez nos encargaremos de ApiGen.

1.- Documentar correctamente las clases y métodos.

ApiGen

2.- Descargar ApiGen desde su página web http://www.apigen.org/ y guardarlo en alguna ubicación del disco duro, en mi caso por ejemplo lo puse en C:/apigen/apigen.phar

3.- Verificar si ApiGen se ejecuta correctamente. Desde la consola de Windows nos ubicamos en el directorio donde guardamos el apigen.phar y ejecutamos la siguiente línea de comandos.

Documentar código Fuente con ApiGen

Si les aparece algo parecido a lo siguiente quiere decir que ya estamos listos para generar nuestra documentación de código fuente.

Documentar código Fuente con ApiGen

4.- Generamos nuestra documentación de código fuente; para ello es necesario tener identificado el directorio donde se encuentra nuestro código fuente PHP, y crear un directorio donde guardaremos los archivos generados por el ApiGen.

Ejecutar las siguientes líneas de comando en la consola de Windows.

Documentar código Fuente con ApiGen

5.- Revisar la documentación en el directorio asignado.

Referencias:

http://www.apigen.org/

https://www.sitepoint.com/generate-documentation-with-apigen/

http://code-epicenter.com/apigen-generate-documentation-for-your-php-project/

 

Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+
Read more

Envio de Email por STMP con Python

Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+

Python sin necesidad de bajarnos librerias adicionales podemos enviar email por stmp donde con un correo y su contraseña podemos hacer envio garantizado que llegue al buzon de entrada.

El script tiene comentarios para detallar el funcionamiento.


# importamos la libreria smtplib (no es necesario instalarlo)
import smtplib 
# importamos librerias  para construir el mensaje
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

# definimos los correo de remitente y receptor
##se envia un mail a
addr_to   = 'luizmirodriguez@gmail.com'
##el mail sale desde el correo
addr_from = 'info@luisrodriguez.pe'

# Define SMTP email server details
smtp_server = 'mail.dominio.com.pe'
smtp_user   = 'lrodriguez@dominio.com.pe'
smtp_pass   = '**********'
 
# Construimos el mail
msg = MIMEMultipart() 
msg['To'] = addr_to
msg['From'] = addr_from
msg['Subject'] = 'Prueba'
#cuerpo del mensaje en HTML y si fuera solo text puede colocar en el 2da parametro 'plain'
msg.attach(MIMEText('< h1>titulo de mensaje< p>cuerpo de mensaje','html'))

# inicializamos el stmp para hacer el envio
server = smtplib.SMTP(smtp_server)
server.starttls()
#logeamos con los datos ya seteamos en la parte superior
server.login(smtp_user,smtp_pass)
#el envio
server.sendmail(addr_from, addr_to, msg.as_string())
#apagamos conexion stmp
server.quit()

Pero si desean adjuntar en el mail datos adjuntos python tambien nos permite eso.
agregando 2 librerias mas


#importamos librerias para adjuntar
from email.MIMEBase import MIMEBase 
from email import encoders 

Y cargamos el archivo.


#adjuntamos fichero de texto pero puede ser cualquer tipo de archivo
##cargamos el archivo a adjuntar
fp = open('/tmp/log_envio.txt','rb')
adjunto = MIMEBase('multipart', 'encrypted')
#lo insertamos en una variable
adjunto.set_payload(fp.read()) 
fp.close()  
#lo encriptamos en base64 para enviarlo
encoders.encode_base64(adjunto) 
#agregamos una cabecera y le damos un nombre al archivo que adjuntamos puede ser el mismo u otro
adjunto.add_header('Content-Disposition', 'attachment', filename='nombre_que_deseamos_que_tenga_el_adjunto.txt')
#adjuntamos al mensaje
msg.attach(adjunto) 

Y este seria el codigo final para el envio de correo con datos adjuntos en python


# importamos la libreria smtplib (no es necesario instalarlo)
import smtplib 
# importamos librerias  para construir el mensaje
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText 
#importamos librerias para adjuntar
from email.MIMEBase import MIMEBase 
from email import encoders 

# definimos los correo de remitente y receptor
##se envia un mail a
addr_to   = 'luizmirodriguez@gmail.com'
##el mail sale desde el correo
addr_from = 'info@luisrodriguez.pe'

# Define SMTP email server details
smtp_server = 'mail.dominio.com.pe'
smtp_user   = 'lrodriguez@dominio.com.pe'
smtp_pass   = '**********'
 
# Construimos el mail
msg = MIMEMultipart() 
msg['To'] = addr_to
msg['From'] = addr_from
msg['Subject'] = 'Prueba'
#cuerpo del mensaje en HTML y si fuera solo text puede colocar en el 2da parametro 'plain'
msg.attach(MIMEText('< h1>titulo de mensaje< p>cuerpo de mensaje','html'))

#adjuntamos fichero de texto pero puede ser cualquer tipo de archivo
##cargamos el archivo a adjuntar
fp = open('/tmp/log_envio.txt','rb')
adjunto = MIMEBase('multipart', 'encrypted')
#lo insertamos en una variable
adjunto.set_payload(fp.read()) 
fp.close()  
#lo encriptamos en base64 para enviarlo
encoders.encode_base64(adjunto) 
#agregamos una cabecera y le damos un nombre al archivo que adjuntamos puede ser el mismo u otro
adjunto.add_header('Content-Disposition', 'attachment', filename='nombre_que_deseamos_que_tenga_el_adjunto.txt')
#adjuntamos al mensaje
msg.attach(adjunto) 

# inicializamos el stmp para hacer el envio
server = smtplib.SMTP(smtp_server)
server.starttls() 
#logeamos con los datos ya seteamos en la parte superior
server.login(smtp_user,smtp_pass)
#el envio
server.sendmail(addr_from, addr_to, msg.as_string())
#apagamos conexion stmp
server.quit()

este script de python lo podemos ejecutar desde una consola directamente para que lo prueben, Deben copiar el codigo a un archivo con extencion py y ejecutar en consola desde linux, windows o mac


root> python envio.py
Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+
Read more

Hola mundo con el Framework Tornado de Python

Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+

Desde el 2013 estoy muy interesado en este lenguaje de programación que ya tiene muchos años desde su creacion y esta orientado para programación de escritorio pero gracias a los framework que salieron su uso para el lado web a crecido mucho. Es open source y tiene una gran comunidad de desarrolladores.

en este articulo creare algo simple que es un hola mundo en Tornado con la version 2.7 de python.

creamos un entorno virtual con virtualenv

virtualenv hola_mundo

ahora necesitamos activarlo para eso entramos a la carpeta que se nos creo que es hola_mundo

cd hola_mundo
source bin/activate

para saber si esta bien en nuestra consola debe salir algo asi

(hola_mundo)usuario@servidor:

luego necesitamos tener tornado y lo instalamos (yo uso pip para instalar les recomiendo que lo tengan)

pip install tornado
 #importamos a tornado lo que necesitamos
import tornado.ioloop
import tornado.web 

#declaramos un clase Index que tambien pude ser cualquier
#nombre
class Index(tornado.web.RequestHandler):
    #en la clase declaromos el metodo post o get

    #esto sera cuando alquien habra la pagina
    def get(self):
        #y vamos a escribir en le navegador el hola mundo
        self.write('Hola Mundo')

#por buena practica solocamos esta condicion que sirve
#para saber si esto se esta ejecutando directamente osea
#si en consola se esta ejecutando por que puede haber
#que tambien este siento importado y no queremos que desde
#un import se ejecute

if __name__ == '__main__':
    #declaramos la url con la clase que arriba
    app = tornado.web.Application([
        (r'/',Index)
    ])
    #le indicamos que puerto debe escuchar
    #para que entremos a verlo asi localhost:8888
    #ese puerto puede cambiar a cualquiera excepto a los
    #que ya se estan usando.
    app.listen(8888)
    #arrancamos tornado
    tornado.ioloop.IOLoop.instance().start()

este archivo lo creamos dentro de nuestro directorio que creamos en virtualenv y se llama config.py
nos vamos a la consola y ejecutamos de esta manera.

python config.py

entramos a localhost:8888 y ya veremos el hola mundo.

Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+
Read more