You are on page 1of 33

TODOS LOS MODULOS PARA SUS NECESIDADES CON PYTHON

NUMERO 2

Google App Engine el servidor de aplicaciones que utiliza PYTHON

MUNDO PYTHON

MUNDO PYTHON
Contenido
• AUTOR • PORQUE PYTHON • TODOS LOS MODULOS PARA SUS NECESIDADES CON PYTHON • WINK • GOOGLE APP ENGINE • PYGAME • CODIGO FUENTE (SOCKETS EN PYTHON) • CURSO PYTHON • ENLACES • CONTACTO • PUBLICIDAD

Numero 2

www.aprenderpython.com

1

MUNDO PYTHON
Hola a todos

Autor

Bueno la verdad no soy muy bueno para escribir, cual es la idea de haber comenzado esta revista, reunir la comunidad mas grande de Programadores de Python de habla, Español. Como empezo esta iniciativa pues al buscar documentacion de Python no encotramos mucha, pero si hay una gran cantidad de personas con conocimientos en Python muy grandes que pueden compartir a esta comunidad que inicia, si eres un programador y te consideras excelente lo invito a hacer sus aportes para esta comunidad que inicia, hay muchos que tal vez no tienen idea de programacion y mucho menos en Python la idea es que por medio de este medio poder difundir la enseñanza de este lenguaje "que por cierto no es muy dificil de aprender" por eso lo invito amigo lector a hacer su contribucion. Con esta introduccion quiero invitarlo a participar en esta gran comunidad que inicia ya son muchos los que se han registrado en el foro, el foro es la manera en que invito a dar sus contribuciones tenemos una gran biblioteca y estamos en inicio de un foro dedicado a los codigos fuentes tambien preguntas frecuentes y mucho mas, otra manera en que lo invito a participar es enviando alguna noticia o articulo que considere importente para el crecimiento de esta revista puede enviar su aporte a este correo y lo estudiaremos y si es bueno lo publicaremos. Este es el correo para cualquier inquietud, sugerencia o aporte que quiera brindar: aprenderpython@gmail.com Bueno como les decia yo invito tanto a novatos como expertos en la programacion de Python a contribuir a esta comunidad que inicia tal vez no somos muchos pero con sus aportes podemos hacer grande esta comunidad de difusion de Python, gracias a que es software libre seguimos sus filosofia de hacer libre esta revista. Disculparan el diseño de la misma pero como ven estamos iniciando, un saludo a todos y Bienvenidos. Daniel Bermudez.

Numero 2

www.aprenderpython.com

2

MUNDO PYTHON
¿Porque Python?
Python es un lenguaje que todo el mundo debería conocer. Su sintaxis simple, clara y sencilla; el tipado dinámico, el gestor de memoria, la gran cantidad de librerías disponibles y la potencia del lenguaje, entre otros, hacen que desarrollar una aplicación en Python sea sencillo, muy rápido y lo que es más importante, divertido. La sintaxis de Python es tan sencilla y cercana al lenguaje natural que los programas elaborados en Python parecen pseudocódigo. Por este motivo se trata además de uno de los mejores lenguajes para comenzar a programar. Python no es adecuado sin embargo para la programación de bajo nivel o para aplicaciones en las que el rendimiento sea crítico. Algunos casos de éxito en el uso de Python son Google, Yahoo, la NASA, Industrias Ligh & Magic, y todas las distribuciones Linux, en las que Python cada vez representa un tanto por ciento mayor de los programas disponibles. Python presenta una serie de ventajas que lo hacen muy atractivo, tanto para su uso profesional como para el aprendizaje de la programación. Entre las más interesantes desde el punto de vista didáctico tenemos: Python es un lenguaje muy expresivo, es decir, los programas Python son muy compactos: un programa Python suele ser bastante más corto que su equivalente en lenguajes como C. (Python llega a ser considerado por muchos un lenguaje de programación de muy alto nivel .)

2+2 en: Python

print 2+2 4
Python es muy legible. La sintaxis de Python es muy elegante y permite la escritura de programas cuya lectura resulta más fácil que si utilizaremos otros lenguajes de programación. Python ofrece un entorno interactivo que facilita la realización de pruebas y ayuda a despejar dudas acerca de ciertas características del lenguaje. El entorno de ejecución de Python detecta muchos de los errores de programación que escapan al control de los compiladores y proporciona información muy rica para detectarlos y corregirlos.

Numero 2

www.aprenderpython.com

3

MUNDO PYTHON
TODOS LOS MODULOS PARA SUS NECESIDADES CON PYTHON
Python es un lenguaje potente, seguro, flexible… pero con una gran cantidad de modulos para todas nuestras necesidades es por eso que en esta ocacion dejo algunos modulos que pueden ser utiles a la hora de programar con Python.
Interfaz Grafica Interfaz Grafica Interfaz Grafica Interfaz Grafica Interfaz Grafica Base de Datos Base de Datos Base de Datos Base de Datos Base de Datos Base de Datos Base de Datos Base de Datos MSN Messenger MSN Messenger MSN Messenger Redes Imagen Imagen Imagen pyGtk pyQT Pmw Tkinter 3000 Tix MySQLdb PyGreSQL Gadfly SQLAlchemy psycopg kinterbasdb cx_Oracle pySQLite msnlib pymsn msnp Twisted PIL gdmodule VideoCapture http://www.pygtk.org http://www.riverbankcomputing.co.uk/pyqt/ http://pmw.sourceforge.net/ http://effbot.org/zone/wck.htm http://tix.sourceforge.net/ http://sourceforge.net/projects/mysql-python http://www.pygresql.org/ http://gadfly.sourceforge.net/ http://www.sqlalchemy.org/ http://www.initd.org/pub/software/psycopg/ http://kinterbasdb.sourceforge.net/ http://www.cxtools.net/default.aspx?nav=downloads http://initd.org/tracker/pysqlite http://auriga.wearlab.de/~alb/msnlib/ http://telepathy.freedesktop.org/wiki/Pymsn http://msnp.sourceforge.net/ http://twistedmatrix.com/ http://www.pythonware.com/products/pil/ http://newcenturycomputers.net/projects/gdmodule.html http://videocapture.sourceforge.net/

Numero 2

www.aprenderpython.com

4

MUNDO PYTHON
TODOS LOS MODULOS PARA SUS NECESIDADES CON PYTHON
Ciencia y Matematicas Ciencia y Matematicas Ciencia y Matematicas Ciencia y Matematicas Juegos Juegos Juegos Juegos Jabber Web Web Web Web Localizacion Puerto Serial Puerto Serial Puerto Paralelo Puerto USB Windows Windows Windows Windows Windows scipy NumPy numarray matplotlib Pygame Pyglet PySoy pyOpenGL jabberpy scrape Beautiful Soup pythonweb mechanize geoname.py pySerial USPP pyParallel pyUSB ctypes pywin32 pywinauto pyrtf wmi http://www.scipy.org/ http://numpy.scipy.org// http://www.stsci.edu/resources/software_hardware/numarray http://matplotlib.sourceforge.net/ http://www.pygame.org/news.html http://www.pyglet.org/ http://www.pysoy.org/ http://pyopengl.sourceforge.net/ http://jabberpy.sourceforge.net/ http://zesty.ca/python/scrape.html http://crummy.com/software/BeautifulSoup http://www.pythonweb.org/ http://wwwsearch.sourceforge.net/mechanize/ http://www.zindep.com/blog-zindep/Geoname-python/ http://pyserial.sourceforge.net/ http://ibarona.googlepages.com/uspp http://pyserial.sourceforge.net/pyparallel.html http://bleyer.org/pyusb/ http://starship.python.net/crew/theller/ctypes/ http://sourceforge.net/projects/pywin32/ http://www.openqa.org/pywinauto/ http://pyrtf.sourceforge.net/ http://timgolden.me.uk/python/wmi.html

Python es un lenguaje con pilas como veran tiene una gran cantidad de modulos y librerias, para todo, hay desde Base de Datos, Web, Juegos, Sonido, Windows, Matematicas y Ciencia, 3D, Redes, Interfaz Grafica, Puerto Serial, etc.

Numero 2

www.aprenderpython.com

5

MUNDO PYTHON
TODOS LOS MODULOS PARA SUS NECESIDADES CON PYTHON
Los módulos de la biblioteca estándar pueden ser mejorados por módulos personalizados escritos tanto en C o en Python. Debido a la gran variedad de herramientas incluidas en la biblioteca estándar combinada con la habilidad de usar lenguajes de bajo nivel como C y C++, los cuales son capaces de interactuar con otras bibliotecas, Python es un lenguaje que combina su clara sintaxis con el inmenso poder de lenguajes menos elegantes.

PDA/GSM/Mobiles PDA/GSM/Mobiles Sonido Sonido Sonido Sonido GMail Google Expecto WordNet Linea de Comandos Compiler backend 3D

pymo pyS60 pySoundic pyMedia FMOD pyMIDI libgmail pyGoogle pyExpect pyWordNet cmd llvm-py VPython

http://www.awaretek.com/pymo.html http://sourceforge.net/projects/pys60 http://pysonic.sourceforge.net/ http://pymedia.org/ http://www.fmod.org/ http://www.cs.unc.edu/Research/assist/developer.shtml http://libgmail.sourceforge.net/ http://pygoogle.sourceforge.net/ http://pexpect.sourceforge.net/ http://osteele.com/projects/pywordnet/ http://blog.doughellmann.com/2008/05/pymotw-cmd.html http://mdevan.nfshost.com/llvm-py/ http://vpython.org

Numero 2

www.aprenderpython.com

6

MUNDO PYTHON
Wink
Destacar que es necesario para ver las presentaciones resultantes descargarse el software gratuito Macromedia Flash Player, disponible como un plugin para la mayoría de los navegadores. Requisitos e instalación de WinK WinK es una aplicación que puede ejecutarse tanto en Windows como en Linux. No presenta ninguna exigencia especial con respecto a procesador o memoria, pero sí hace recomendaciones con respecto a la resolución de pantalla, aconsejando que sea igual o superior a 800x600. Sin embargo, se pueden hacer capturas de pantalla a 640x480, pero se dispondrá de menor espacio para trabajar. La instalación no presenta ninguna dificultad. WinK se distribuye como un fichero zip que incluye el instalador. Lo único que habrá que hacer será descomprimir el archivo en un directorio temporal y ejecutar el instalador. Posteriormente, se podrá borrar tanto el instalador como el fichero zip. Fuente: Fuente: http://observatorio.cnice.mec.es/mo http://observatorio.cnice.mec.es/mo dules.php?op=modload&name=New dules.php?op=modload&name=New s&file=article&sid=406 s&file=article&sid=406

Introducción A la hora de realizar demostraciones de uso de un producto, ya sea como estrategia de ventas o como parte de un curso en línea, resulta de gran utilidad poder seguir los pasos del profesor o conferenciante de una manera visual, poder ver cómo elige una opción, cómo despliega un menú o cómo arrastra una ventana. De esta manera se refuerza el aprendizaje y se mejora el conocimiento del producto, puesto que estamos observando cómo se comporta en la realidad. Si además se pudiera distribuir la demostración a través de Internet, las posibilidades educativas serían inmensas. La grabación en video de sesiones de trabajo es una opción, pero la edición de la cinta para añadir comentarios, etiquetas o eliminar sobrante es una tarea compleja. La grabación por software es una solución más sencilla, más barata y repleta de posibilidades. La aplicación que se presenta a continuación es una herramienta que permite realizar presentaciones y tutoriales y ofrecerlas en formato flash.

Numero 2

www.aprenderpython.com

7

MUNDO PYTHON
Cómo realizar una presentación con WinK
Para realizar una presentación con WinK, se ejecuta el software objetivo de la presentació WinK, presentación y se van capturando pantallas de las acciones que se quieren mostrar. presentació mostrar. Posteriormente WinK unirá cada una de estas pantallas en una película continua. unirá pelí La edición de la película permitirá añadir o eliminar pantallas (también llamadas marcos edició pelí permitirá (tambié en la aplicación) en cualquier punto, añadir comentarios, botones de anterior, siguiente o aplicació añ incluso saltar de un marco a otro cualquiera. Se pueden realizar presentaciones todo lo complejas que se quieran, o simplemente dejar que grabe mientras se trabaje. A las presentaciones que se crean con esta aplicación se les puede añadir fondos aplicació añ personalizados y también se puede grabar el aspecto general de una presentación como tambié presentació una plantilla, pudiendo de esta forma aplicar el aspecto al resto de los proyectos en los resto que trabajemos. Una vez terminada una presentación se exporta a formato flash, y será éste el que se presentació será distribuya a través de la red o de cualquier otro medio de distribución. La presentación travé distribució presentació también se podrá exportar como HTML, PDF o Postcript, que servirá como complemento tambié podrá Postcript, servirá al fichero flash. Para crear un primer proyecto de ejemplo con WinK, se seguirán los siguientes pasos: WinK, seguirá 1. Abrir la aplicación destino de la presentación y el programa WinK. A modo de ejemplo, aplicació presentació WinK. usaremos el explorador de Windows para demostrar cómo se muestran los archivos con ó c la vista en miniatura.

Wink

Numero 2

www.aprenderpython.com

8

MUNDO PYTHON
Wink
Ventana principal de WinK
2. Creamos un proyecto nuevo en WinK desde el menú Archivo à Nuevo. Aparecerá menú Aparecerá un asistente que nos guiará en los guiará siguientes pasos. Ventana del asistente 3. La primera pantalla del asistente pregunta si se quiere grabar sonido mientras se realiza la presentación o no presentació (para este proyecto desactivaremos la opción), se ocultará la ventana de WinK opció ocultará durante la presentación y se elige qué presentació qué es lo que se quiere capturar. Se puede elegir entre capturar la pantalla completa, una ventana concreta o cualquier región. Para este ejemplo se regió elegirá la opción Ventana para capturar elegirá opció la ventana del explorador de Windows. Una vez elegida esta opción, y opció habiendo marcado la de ocultar la ventana de WinK, se pulsará sobre el WinK, pulsará botón Seleccionar. Pinchando con el ó bot ratón en la barra de títulos del rató tí explorador, quedará seleccionada la quedará ventana. Ahora simplemente se pulsa OK.

Numero 2

www.aprenderpython.com

9

MUNDO PYTHON
Wink
Elección de ventana de trabajo 4. Lo siguiente es proceder a capturar las pantallas de la presentación. Existen tres maneras de hacerlo: o bien se capturan sólo las pantallas deseadas pulsando Pause en cada una de ellas, o bien se capturan todas las pantallas y movimientos en un intervalo de tiempo o bien se capturan todas las pantallas y movimientos desde que se pulsa una combinación de teclas determinada hasta que se vuelve a pulsar la misma combinación. Será esta última opción la que elegiremos para el ejemplo, por lo que a continuación se pulsa el botón y se procede a la captura pulsando Alt+Pause. A partir de ese momento, todo lo que se realice sobre la pantalla será capturado. Comienzo de captura de pantallas 5. Siguiendo con el ejemplo, en la ventana del explorador de Windows, pulsar sobre detalles y después vistas en miniatura. Una vez hecho esto, se hace doble clic sobre el icono minimizado del WinK y se pulsa el botón Finalizar

Fin de capturas de pantallas 6. Cuando se pulsa el botón Finalizar, aparece la ventana principal de WinK con el proyecto abierto y las ventanas capturadas listas para trabajar con ellas. En este momento se puede ver si se han capturado pantallas repetidas o si sobran pantallas, pudiendo proceder a eliminarlas si se desea

Numero 2

www.aprenderpython.com

10

MUNDO PYTHON
Wink

Ventana principal del WinK con un proyecto 7. Una vez elegidas las pantallas definitivas que van a formar parte del proyecto, se podrá trabajar sobre cada marco por separado. Se pueden añadir comentarios de texto, de audio, botones de avance o retroceso, imágenes de fondo. En el área de selección aparecen las pantallas definitivas.

Numero 2

www.aprenderpython.com

11

MUNDO PYTHON
Wink
Área de selección de pantallas 8. Para seguir con el ejemplo, se va a poner un comentario de texto en una de las pantallas. Para ello, se selecciona la pantalla deseada (en este caso la primera). Luego, se elige la opción de cuadro de texto en la pantalla de propiedades de marco que aparece a la derecha. En esa ventana aparecen las características del marco, como el título, los segundos que debe aparecer el marco en la presentación, los botones que se le han añadido, etc. Ventana de propiedades del marco 9. Al pulsar el botón de cuadro de texto, aparece un globo de texto en la pantalla que podremos mover, cambiar de forma o de color, añadir o eliminar texto, etc.

Cuadro de texto 10. Lo siguiente que vamos a hacer en la presentación de ejemplo es añadir un botón de avance. Normalmente, los marcos de la película avanzarán de manera automática con el retardo que se especifica en las propiedades de la ventana. Sin embargo, en muchas ocasiones es conveniente que sea el propio usuario el que avance o retroceda. Para añadir un botón de avance, se pulsa en el icono correspondiente.

Numero 2

www.aprenderpython.com

12

MUNDO PYTHON
Wink
Botón de avance 12. Además de cuadros de texto o botones de avance o retroceso, se pueden añadir archivos de audio (para poner comentarios sobre lo que se está haciendo), formas diversas, enlaces a páginas web o incluso botones para ir desde cualquier marco a cualquier otro. 13. Cuando no se quieren poner botones de avance, sino que lo que se quiere es que alguno (o todos) los marcos avancen de manera automática, se debe temporizar el marco, añadiendo un tiempo de permanencia del marco.

Icono de botón de avance 11. Cuando se pulsa el icono de botón de avance, aparece el icono en el marco activo, que se podrá colocar dónde se desee.

Tiempo de permanencia del frame 14. Otra característica que puede ser de mucha utilidad es la posibilidad de añadir una gran cantidad de formas predefinidas e incluso añadir formas creadas por el usuario para dar más contenido a las presentaciones. Entre las formas predefinidas, destacan los signos de interrogación, las marcas de correcto o equivocado, etc.

Numero 2

www.aprenderpython.com

13

MUNDO PYTHON
Wink
Icono de forma predefinida

Ventana de forma predefinida 15. Todas las modificaciones que se hayan añadido a un marco podrán ser activadas o desactivadas a voluntad. De esta manera, se puede eliminar cualquier elemento que no haya quedado como se deseaba y se puede volver a activar en el futuro.

Selección de los componentes del marco El último paso es generar la presentación en formato flash. Para ello, se debe pulsar en el botón de generar . Una vez generada la presentación, se puede visualizar en el navegador predeterminado pulsando el botón previsualizar . Los archivos generados serán los que se pueden ver en la figura siguiente.

Numero 2

www.aprenderpython.com

14

MUNDO PYTHON
Wink

Archivos generados del WinK 17. Por último y como ya se ha comentado, además de generar la salida en formato flash se puede obtener la presentación en HTML, en PDF o incluso en postcript. Para ello, se elige la opción correspondiente desde el menú archivo.

Fuente: Fuente: http://observatorio.cnice.mec.es/modules.php?op=modload&name=News&file=articl http://observatorio.cnice.mec.es/modules.php?op=modload&name=News&file=articl e&sid=406 e&sid=406

Numero 2

www.aprenderpython.com

15

MUNDO PYTHON
Google App Engine
Google App Engine es un servicio que nos permite ejecutar nuestras aplicaciones web en los servidores de Google. Este servicio ofrece, además de la ejecución de aplicaciones, un sistema de bases de datos no relacionales y espacio de almacenamiento, el ya comentado BigTable. http://code.google.com/appengine/ Pero más importante, permite el desarrollo de aplicaciones web con un coste reducido y con una infraestructura solvente, como es la de los servidores de Google. Esto implica un ratio de funcionamiento muy alto y la posibilidad de escalar, es decir de aumentar los recursos utilizados, de forma sencilla. ¿Qué implica esto para nosotros como usuarios? Pues que podremos encontrar cada día más servicios web que funcionen rápido y sin problemas de escalabilidad. Por poner un ejemplo, Twitter, en sus inicios tenía serios problemas de este tipo, cayéndose el servicio cada dos por tres debido al alto número de usuarios y a una cantidad de servidores no dimensionada a lo necesario. En una aplicación como esta, si el número de usuarios crece mucho necesitaremos optimizar código y añadir nuevos servidores, con el consiguiente gasto. Con Google App Engine no debemos preocuparnos de ello, ya que el servicio se redimensiona automáticamente.

Numero 2

www.aprenderpython.com

16

MUNDO PYTHON
Google App Engine
De momento, y como todo lo que lanza Google se encuentra en beta, limitada a 10000 desarrolladores y no parece ya haber más “plazas libres”. Los que han conseguido registrarse ya pueden empezar a probar sus aplicaciones, que deben estar programadas en Python, aunque esperan aumentar el número de lenguajes soportados en un futuro. Aunque todavía no han anunciado cual será el precio del servicio, sabemos que dispondremos de hasta 500 MB de espacio de almacenamiento, 200 millones de megaciclos de CPU por día y 10 GB de transferencia diarios. Según Google esto debería bastar para sitios que sirvan hasta cinco millones de páginas diarias. Dentro de estos límites, el uso será gratuito y solo habrá que pagar si los superamos. Por cierto, los servicios estarán alojados bajo un subdominio de appspot.com o, mediante Google Apps, en nuestro propio dominio. tenemos el primer ejemplo de aplicación funcional en Huddle Chat, aunque en estos momentos no parece estar funcionando del todo bien.

¿Qué implica para desarrolladores? Pues básicamente lo mismo, pero visto desde el otro lado. Nuestra aplicación web puede empezar siendo muy pequeña y con un coste muy bajo (o cero, como veremos ahora), pero con posibilidad de crecer mucho sin que debamos preocuparnos de la infraestructura que tenemos por detrás. De hecho, dispondremos además de otros servicios, como la descarga de páginas web o el envío de correo electrónico que aprovechan las infraestructuras existentes de Google. También dispondremos de APIs para la identificación de usuarios con cuentas Google, punto que a mi no me acaba de convencer, aunque de todos modos no es de obligada implantación

Numero 2

www.aprenderpython.com

17

MUNDO PYTHON
Google App Engine

Para comenzar a utilizar 'Google App Engine', lo primero que debéis hacer es descargaros este kit de desarrollo SDK, disponible para diversos Sistemas Operativos como Linux, MS Windows o Mac OS X. Este SDK está implementado en Python, el lenguaje de programación creado por Guido van Rossum, ingeniero que fue contratado por Google en octubre de 2005. De hecho, el sistema de gestión de código de programación que se utiliza internamente dentro de la compañía, llamado 'Google Mondrian', ha sido desarrollado por el propio van Rossum utilizando Python y los primeros prototipos de 'Google App Engine' (ver vídeo en el grupo de Facebook).

Nosotros nos hemos descargado este SDK (requiere una versión de Python mayor o igual que 2.5), y hemos hecho algunos de los ejemplos de código que se explican en este pequeño tutorial. Cuando se desarrolla en local, la aplicación 'habla' por el puerto 8080 de nuestro PC (http://localhost:8080), y es necesario hacer un 'deploy' a los servidores de Google. Esto se hace mediante el script 'google_appengine.py', que nos pedirá nuestro usuario y contraseña de Google para subir la aplicación al espacio de 'Google App Engine' que nos han facilitado.

Numero 2

www.aprenderpython.com

18

MUNDO PYTHON
Google App Engine
Nosotros hemos creado la aplicación de ejemplo que permite experiementar con los 'Requests' de peticiones de los usuarios, y que simula un pequeño libro de visitas. Lo podéis encontrar en este enlace y, como podéis comprobar, se encuentra alojado en el subdominio 'dirson1.appspot.com'. Google nos ofrece la posibilidad de alojar las aplicaciones de 'Google App Engine' bajo el dominio 'appspot.com', pero también podemos utilizar nuestro propio dominio, siempre y cuando nuestra empresa esté utilizando 'Google Apps' Otro punto muy interesante de este nuevo 'Google App Engine' es que se pueden integrar las aplicaciones que vayamos creando con el sistema de cuentas personales de Google, en lo que se ha llamado 'User Service' (ver referencia de API). Además, también se proporciona un pequeño sistema de plantillas, que permite utilizar motores de templates de Python ya existentes. Las aplicaciones de App Engine son fáciles de crear, de mantener y de redimensionar a medida que aumenta su tráfico.

Se trata de un ejemplo muy sencillo el que hemos hecho, porque el punto fuerte de 'Google App Engine' es su capacidad de almacenamiento de datos en los servidores de Google a través de la tecnología de BigTable y GFS. Para ello, utiliza la nomenclatura del modelo de API de gestión de datos del framework Django, modelo que podéis consultar en este enlace. Para realizar las queries a BigTable, los ingenieros de Google han creado un lenguaje de consultas, llamado GQL (Google Query Language), muy similar al conocido SQL. Tenéis un documentación de referencia en esta página.

FUENTES: http://code.google.com/appengine/, http://www.genbeta.com/2008/04/08-googlehttp://code.google.com/appengine/, http://www.genbeta.com/2008/04/08- googleapp-engine, http://google.dirson.com/post/3944-google-app-engine, http://programa-conapphttp://google.dirson.com/post/3944- google- apphttp://programa- congoogle.blogspot.com/2008/05/ms-sobre-el-google-app-engine.html google.blogspot.com/2008/05/ms- sobre- el- google- app-

Numero 2

www.aprenderpython.com

19

MUNDO PYTHON
Historia Pygame comenzó en el verano del 2000. Siendo un programador C por muchos años, descubrí Python y SDL casi al mismo tiempo. Usted ya está familiarizado con Python, que estaba en su versión 1.5.2, por lo tanto podría necesitar una introducción a SDL, que significa Simple Directmedia Layer. Creada por Sam Lantinga, es una biblioteca multiplataforma para controlar multimedia, comparable a DirectX. A sido usada para cientos de juegos comerciales y de código abierto. Estaba impresionado por lo nítidos y directos que eran ambos proyectos y no pasó mucho tiempo antes que me diera cuenta que mezclar Python y SDL era una propuesta interesante. Descubrí un pequeño proyecto ya en curso con exactamente la misma idea, PySDL. Creada por Mark Baker, PySDL era una implementación directa de SDL como una extensión de Python. La interfase era mas limpia que una envoltura genérica SWIG, pero forzaba un "estilo C" al código. La muerte repentina de PySDL se incito a empezar un nuevo proyecto por mi cuenta. Quería generar un proyecto que realmente tomara ventaja de Python. Mi meta era hacer muy simple realizar las cosas sencillas, y directo para hacer las cosas difíciles. Pygame empezó en Octubre del 2000. Seis meses mas tarde la versión 1.0 de Pygame fue lanzado. FUENTES: http://es.wikipedia.org/wiki/Pygame

Numero 2

www.aprenderpython.com

20

MUNDO PYTHON
Python y los juegos ¿Es Python conveniente para juegos? La respuesta es, "Depende del juego". Python es realmente bastante capaz de correr juegos. Probablemente hasta lo sorprenda cuanto se puede hacer en menos de 30 milisegundos. Aún así, no es difícil llegar al techo una vez que su juego se haga mas complejo. Cualquier juego ejecutándose en tiempo real hará uso completo de la computadora. Durante los últimos años ha existido una tendencia interesante en el desarrollo de juegos, que se acerca a lenguajes de mas alto nivel. Usualmente un juegos se divide en 2 grandes partes. El motor del juego, el cual tiene que ser lo mas rápido posible, y la lógica del juego, que le indica al motor que debe realizar. No hace mucho tiempo que el motor de un juego se escribía en Assembler, con porciones escritas en lenguaje C. Hoy en día, C se ha trasladado al motor del juego, mientras que el juego mismo es escrito en un lenguaje de Scripts de mas alto nivel. Juegos como Quake 3 y Unreal ejecutan estos Scripts como código binario portable.

Al comienzo del 2001, el desarrollador Rebel Act Studios terminó su juego, Severance: Blade of Darkness. Usado su propio motor de 3D a medida, el resto del juego está escrito en Python. El juego es en tercera persona de acción sangrienta. Usted controla a guerreros medievales en intrincadas combinaciones de ataques "decapitantes" mientras explora calabozos y castillos. Puede descargar agregados creados por terceras partes para este juego, y encontrar que no son nada mas que archivos fuente de Python.

http://www.pygame.org/news.html

Numero 2

www.aprenderpython.com

21

MUNDO PYTHON
Pygame y SDL sirven como excelentes motores C para juegos 2D. Los juegos igualmente pasarán la mayor parte del tiempo de ejecución dentro de SDL manejando sus gráficos. SDL puede tomar ventaja de la aceleración de hardware de gráficos. Habilitando esto, se puede elevar el rendimiento de un juego que corre aproximadamente a 40 cuadros por segundo hasta 200 cuadros por segundos. Cuando se ve a un juego de Python ejecutando a 200 cuadros por segundos, se puede ver que Python y los juegos pueden funcionar juntos. Es impresionante cuan bien funcionan Python y SDL en múltiples plataformas. Por ejemplo, en Mayo del 2001 lance mi propio proyecto Pygame completo, SolarWolf, un juego de acción del estilo Arcade. Una cosa que me ha sorprendido es que un año mas tarde, no ha existido la necesidad de parches, arreglo de Bugs, o actualizaciones. El juego fue desarrollado enteramente en Windows, pero corre en Linux, Mac OSX y muchos Unix sin la necesidad de trabajo extra por mi lado. Aún así, hay limitaciones muy claras. La mejor manera de manejar gráficos de aceleradoras de video no es siempre la forma de obtener resultados rápidos del Software que procesa gráficos. El soporte de hardware no está disponible en todas las plataformas. Cuando un juego se hace mas complejo, usualmente se tiene que comprometer con uno u otro. SDL tiene otras limitaciones de diseño, cosas como los desplazamientos de pantalla completa pueden llevar rápidamente a su juego a velocidades injugables. Libro que encontrara s en el foro de Aorender Python dentro de los niveles avanzados.

Numero 2

www.aprenderpython.com

22

MUNDO PYTHON
Mientras SDL no es conveniente para todo tipo de juegos, recuerde que compañías como Loki usaron SDL para ejecutar una gran variedad de títulos de calidad de ventas por menor. Pygame es de bajo nivel cuando se trata de escribir juegos. Se encontrará rápidamente en la necesidad de envolver funciones comunes en su propio ambiente de juego. La gran ventaja de esto es que no hay nada en Pygame que le impida seguir su camino. Su programa está en total control de todo. El efecto colateral de esto es que se encontrará pidiendo prestado mucho código para realizar un marco de trabajo mas avanzado. Necesitará un mejor entendimiento de lo que está haciendo.

Resumen de módulos Pygame
» cdrom: administra los dispositivos CDROM y cdrom: la reproducción de CDs de audio. reproducció » cursors: carga imágenes de cursor, cursors: imá incluyendo los cursores por defecto. » display: controla la ventana principal o pantalla. » draw: dibuja figuras simples sobre objetos draw: Surface. Surface. » event: administra eventos y la cola de event: eventos. » font: genera e imprime fuentes tipográficas font: tipográ Truetype. Truetype. » image: lee y graba imágenes. image: imá » joystick: administra dispositivos de joystick. » key: administra el teclado. key: » mouse: permite controlar el mouse mouse: » movie: reproduce películas en formato movie: pelí MPEG. » sndarray: manipula sonidos con Numeric. sndarray: Numeric. » surfarray: manipula imágenes con Numeric. surfarray: imá Numeric. » time: controlador de tiempo. » transform: puede escalar, rotar e invertir transform: imágenes imá

Fuente:www.losersjuegos.com.ar

Numero 2

www.aprenderpython.com

23

MUNDO PYTHON
Codigo Fuente Sockets en Python
Primero que nada vamos a ver de que ablamos cuando decimos socket. Se dice socket a un mecanismo de comunicación general entre dos procesos cualquiera que pertenezcan a un mismo sistema o a dos sistemas diferentes. Esta conexión se puede entablar por diferentes dominios pero nosotros explicaremos el AF_INET, el cual, se utiliza para comunicaciones TCP(UDP)/IP. Para entender esta definición necesitamos tener algunos conceptos claros: 1) Dirección IP: La dirección IP es una serie de números asociadas a un dispositivo (generalmente una computadora), con la cual es posible identificarlo dentro de una red configurada específicamente para utilizar este tipo de direcciones. Es Decir es la direccion de tu computadora dentro de esta red. Es importante saber la ip del equipo remoto para asi poder entablar la conexión, ya que , de lo contrario el programa no sabria donde conectarse.

2) Puerto : Los puertos IP son numerados del 0 al 65536 usados para dirigir los distintos tipos de actividad existente en Internet, al software apropiado en el ordenador local. Piensa en tu ordenador como una oficina de un edificio, con varias salas y habitaciones para desempeñar diferentes funciones. La dirección IP que utilizamos para navegar por Internet correspondería con el nombre de la calle del edificio, y los puertos IP serían los números de las habitaciones. Pero ten en cuenta que no se pueden entablar dos conexiones por el mismo puerto por lo tanto es conveniente utilizar puertos grandes como 12345 que no son utilizados por otros programas.

Numero 2

www.aprenderpython.com

24

MUNDO PYTHON
Codigo Fuente Sockets en Python
No es muy complejo adaptarse a la manera en que trabajan los sockets, primero que nada se necesita una aplicación que haga el trabajo de servidor, las principales cosas que hace un servidor son las siguientes: - Ser creado. - Ser asignado a una dirección y darle un puerto. - Esperar por nuevas conexiones. - Aceptar nuevas conexiones. Un Código Básico de un servidor seria: import socket #Importamos el modulo serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Creamos el socket serversocket.bind(('localhost', 8000)) #Le asignamos una dirección y un puerto al servidor, por medio de una tupla (add, host). serversocket.listen(1) #Esperamos 1 coneccion clientsocket, clientaddress = serversocket.accept() #si llega alguna conexión la aceptamos print 'Conexión desde: ', clientaddress while 1: #Creamos un bucle infinito data = clientsocket.recv(1024) #recibimos el mensaje if not data: break #si no hay mensaje se corta el bucle infinito y cortamos la conexión clientsocket.close() #se cierra la conexión

Numero 2

www.aprenderpython.com

25

MUNDO PYTHON
Codigo Fuente Sockets en Python

Eso es lo básico que hace un servidor, claro que también es importante que mande y reciba información. Después se crean los clientes, lo que realizan los o el cliente es: - Ser creado. - Conectarse a una dirección y puerto dado. El código básico de un cliente seria: import socket #Importamos el modulo clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Creamos el socket clientsocket.connect(('localhost',8000)) #conectamos al servidor por medio de una tupla (ip, puerto). while 1: #Creamos bucle infinito data = raw_input('>') #pedimos el mensaje a enviar clientsocket.send(data) #enviamos el mensaje if not data: break #si no hay mensaje se corta el bucle infinito y cortamos la conexión clientsocket.close() #cerramos la conexión Fuente: Maximo Lionello

Numero 2

www.aprenderpython.com

26

MUNDO PYTHON
Curso Python

Introduccion Python (como se observará a lo largo del presente curso) cumple unos requerimientos ideales como lenguaje de programación, es decir, Python es general y funciona en cualquier sistema operativo (bien sea en Linux, Windows o Macintosh) para que cualquier usuario lo pueda instalar en cualquier máquina. Por otra parte, Python es un lenguaje de código abierto, de manera que cualquier usuario puede emplearlo sin necesidad de tener que comprar una licencia para emplear el mismo. Por otra parte, esta orientado a objetos. Y finalmente comentar que es fácil de aprender y de entender.

Comenzando a programar El primer ejemplo que se muestra a continuación es el tradicional programa “hola, mundo”, que en una versión en el lenguaje de programación C++, es: #include <iostream.h> void main() { cout << “Hola, mundo” << endl; } dicho código en Python es únicamente: >>> print “Hola, mundo” Aunque es un ejemplo trivial, destaca la principal ventaja de Python que posteriormente discutiremos con más calma, al ser un lenguaje de muy alto nivel, así como Perl y Java.

Numero 2

www.aprenderpython.com

27

MUNDO PYTHON
Curso Python
Está demás indicar que también existen lenguajes de bajo nivel, o lenguaje de máquina. Es interesante comentar que los computadores sólo ejecutan programas escritos en lenguajes de bajo nivel. Los programas de alto nivel tienen que traducirse antes de ejecutarse, y por ende, esta traducción lleva tiempo, lo cual es una pequeña desventaja de los lenguajes de alto nivel como es el caso de Python. Sin embargo, dicha ventaja es compensada por el hecho que los lenguajes de alto nivel son más sencillos y/o fáciles de escribir, de entender y de depurar. De manera que los programas de alto nivel toman menos tiempo en diseñar, y eliminando probablemente errores en el mismo. En segundo lugar, los lenguajes de alto nivel son portables, lo que significa que pueden ejecutarse en tipos diferentes de computadores sin modificación alguna o con pocas modificaciones. Los programas escritos en lenguajes de bajo nivel sólo pueden ser ejecutados en un tipo de computador específico y deben reescribirse cuando se desea importar dicho código a otra máquina. Debido a esta desventaja, casi todos los programa se escriben en un lenguaje de alto nivel para evitar reescribir el mismo. Los lenguajes de bajo nivel sólo se usan para unas pocas aplicaciones especiales. Hay dos tipos de programas que traducen lenguajes de alto nivel a lenguajes de bajo nivel: intérpretes y compiladores. Un intérprete lee un programa de alto nivel y lo ejecuta, lo que significa que lleva a cabo lo que indica el programa. Traduce el programa poco a poco, leyendo y ejecutando cada comando.

Numero 2

www.aprenderpython.com

28

MUNDO PYTHON
Curso Python
La mayoría de ejemplos indicados en esta revista se pueden ejecutar desde comandos en líneas. La línea de comando es muy apropiada para el desarrollo de programas y para pruebas rápidas porque se pueden teclear las instrucciones de Python e inmediatamente después se puede ejecutar dicha instrucción. Una vez que un programa está completo, puede archivarse en un guión para ejecutarlo o modificarlo en el futuro.

La primera línea de este ejemplo es el comando que pone en marcha el intérprete Python. Las dos líneas siguientes son mensajes del intérprete. La tercera línea comienza con >>>, que es la invitación del intérprete para indicar que está listo. Cuando se escribe “print 1 + 1” y el intérprete contesta “2”. Alternativamente, se puede escribir el programa en un archivo y usar el intérprete para ejecutar el contenido de dicho archivo. Dicho programa se escribe en un editor de texto que contenga la línea: print 1 + 1 (nótese que los programas en Python poseen por defecto la extensión terminal “.py”) Para ejecutar el programa, se le tiene que indicar el nombre del guión al intérprete. $ python primer-ejemplo.py 2

Visita: http:www.aprenderpython.com

Numero 2

www.aprenderpython.com

29

MUNDO PYTHON
ENLACES
• FAQ PYTHON ES: http://python-es-faq.wikidot.com/start • UN JUEGO EN 7 DIAS: http://www.alecu.com.ar/juegos/presentacion/ • VJUEGOS.ORG: http://www.vjuegos.org/index.php?option=com_frontpage&Itemid=1 • BLOG: MUNDO PYTHON • WINK: http://www.debugmode.com/wink/ • GOOGLE APP ENGINE: http://code.google.com/intl/es/appengine/ • PYGAME: http://www.pygame.org/news.html • Programación con GvR: https://www.gfc.edu.co/traduccion/GvrLessonsIndice

Numero 2

www.aprenderpython.com

30

MUNDO PYTHON
CONTACTO
HOLA SI TIENES ALGUNA SUGERENCIA O ARTICULO QUE QUIERAS QUE SE PUBLIQUE EN LA PROXIMA EDICION, CON RESPECTO A LA REVISTA PUEDES ESCRIBIR AL CORREO QUE APACERECE ENSEGUIDA. PARA LA PUBLICIDAD SI DESEAS ANUNCIARTE CON NOSOTROS SOLO DEBES ESCRIBIR AL CORREO, ¿PREGUNTARAS POR QUE ANUNCIAR CON NOSOTROS? • ES UNA REVISTA LIBRE • MUCHAS PERSONAS DESCARGAN LA REVISTA • LOS COSTOS NO SON ALTOS • DISPONEMOS DE PAGINA WEB AUTORES: • DANIEL BERMUDEZ PAGINA WEB: HTTP:WWW.APRENDERPYTHON.COM • CORREO ELECTRONICO: APRENDERPYTHON@GMAIL.COM • FORO: WWW.APRENDERPYTHON.COM.SMF/ • PUBLICIDAD: APRENDERPYTHON@GMAIL.COM • BLOG: MUNDO PYTHON

Numero 2

www.aprenderpython.com

31

MUNDO PYTHON
PUBLICIDAD
http://web.educah ome.com/shop/in dex.asp?vendedo rid=12

http://web.educahome.com/shop/index.asp?vendedorid=12

http://web.educahome.com/shop/index.asp?vendedorid=12

Numero 2

www.aprenderpython.com

32