Nota del autor

Si la entrada que estás leyendo carece de imágenes, no se ve el vídeo que teóricamente lleva incrustado o el código fuente mostrado aparece sin formato, podéis conocer los motivos aquí. Poco a poco iré restableciendo la normalidad en el blog.
Este blog es un archivo de los artículos situados previamente en Lobosoft.es y ha dejado de ser actualizado. Las nuevas entradas pueden encontrarse en www.lobosoft.es. Un saludo,
Lobosoft.
Mostrando entradas con la etiqueta python. Mostrar todas las entradas
Mostrando entradas con la etiqueta python. Mostrar todas las entradas

martes, 10 de junio de 2008

Comprobando la conexión a Internet con Python

Python Logo


He estado jugueteando un poco en los últimos días con los sockets en C#, y por curiosidad he decidido implementar una sencilla función que comprueba si tenemos conexión a Internet. Simplemente, abre un socket para Internet (AF_INET), por lo que es un SOCK_STREAM (bajo TCP), y prueba a conectar, a través del puerto 80, con un servidor web. Como no podía ser menos, intenta hacerlo al dominio de Lobosoft. De conseguirlo, escribe un mensaje y cierra la conexión. De no hacerlo, hace otro tanto, aunque obviamente el mensaje mostrado indica la imposibilidad de conectarse. Sencillo, ¿verdad?


[python]
#!/usr/local/bin/python
# Author: Lobosoft.es

import socket

def IsInternetUp():
testConn = socket.socket(socket.AF_INET,
socket.SOCK_STREAM)
try:
testConn.connect(('www.lobosoft.es', 80))
print "Estamos on-line."
testConn.close()
except:
print "Lo siento, pero no se ha podido establecer la conexión."
testConn.close()

IsInternetUp()
[/python]

Editores de texto

Buscando editores para PocketPC (sí señores, escribir en una PDA es posible, incluso usando el teclado virtual de Windows Mobile en lugar de un práctico teclado bluetooth) encontré esta interesante página que recopila editores de texto para todo tipo de plataformas, gustos y colores. Se trata de TextEditors.org, y en ella podemos realizar búsquedas, ver capturas de pantalla y encontrarnos con clásicos como pico, mi alternativa personal a vi dentro de GNU/Linux en los tiempos en que cursaba la carrera de informática. ¿Quién no recuerda el maravilloso EDLIN de MS-DOS (que, por cierto, sigue vivo y coleando, como demuestra esta captura de pantalla desde la ventana de comandos de Visual Studio 2008)? No se trataba de un editor de texto propiamente dicho, sino de un editor de líneas, pero hasta la llegada de Edit (un rudimentario editor de texto) los usuarios de MS-DOS debían conformarse con él.



edlin.PNG


¿Y qué me dicen del modo rápido de crear un fichero de texto mediante el comando copy con, que redirige la entrada estándar a un fichero de texto?


copycon.PNG


La verdad es que editores hay de todo tipo, aunque hoy día uno de mis preferidos es PSPad, un software gratuito, bastante versátil gracias a la adición de funcionalidades y lenguajes mediante plugins, y que ofrece un entorno de edición muy cómodo. En mi caso suelo usarlo para editar código HTML y PHP, fundamentalmente, aunque provee de sintaxis coloreada para todo tipo de lenguajes (Java, C, C++, Ruby, Python, XML, SQL e, incluso, ensamblador).


En mi búsqueda he encontrado un editor bastante acorde a lo que necesito. Se trata de VimCE, un editor, una versión para Pocket PC de Vim-6.0, que a su vez es un clon de vi. Cedit sería una muy buena opción, pero es shareware, y aunque cuenta con soporte para lenguajes tan punteros como C# o Java, no veo que lo tenga para Python. Y mi idea es tenerlo en la PDA para poder juguetear con PythonCE, una versión algo reducida de Python para PPC.


vimce.gif

sábado, 31 de mayo de 2008

Un manual de referencia Python en Firefox

Una de las características más interesantes de Firefox es su capacidad de extensión mediante la adición de add-ins que ofrecen distintas funcionalidades. Navegando encontré un manual de referencia de Python lo suficientemente interesante como para tenerlo en los marcadores. Pero si además deseamos tenerlo como un panel lateral (sidebar task pane) de Firefox, la instalación pasa por la sencilla creación de un Javascript que lleve a cabo esta tarea. El código podría quedar así:


[js]function addMozillaPanel() {
if ((typeof window.sidebar == "object")  && (typeof window.sidebar.addPanel == "function")) {
window.sidebar.addPanel ("Referencia de Python", "http://www.edgewall.org/python-sidebar/html/toc-tutorial.html","");
} else {
alert ("Lo sentimos, pero necesita Firefox o Mozilla para instalar el manual.");
}
}
[/js]

Y podríamos probar su efectividad incluyendo un enlace que realizase la llamada al Javascript.

manual.PNG


Debería agregarse un nuevo marcador llamado Referencia de Python, y al pulsar sobre el mismo, aparecería una barra lateral con el manual de referencia disponible.

domingo, 13 de abril de 2008

Google App Engine

google-app-engine.png


A nadie debería quedarle la menor duda: la guerra del software está más activa que nunca. A las amenazas de la OPA hostil de Microsoft a Yahoo! se le suman los continuos lanzamientos de todas las grandes compañías que están cayendo en un frenetismo inusitado. A los usuarios y a los profesionales de la informática no nos queda más remedio que actualizar nuestros conocimientos y las referencias que tenemos de "lo que se está cociendo", y no existe tregua para ello.


La penúltima noticia es el lanzamiento oficial de Google App Engine, actualmente en preview release, o versión previa, usada por 10.000 desarrolladores. Las características de esta beta del producto están limitadas al uso de 500MB de espacio, 10GB de ancho de banda diarios y 200.000 megaciclos de CPU, y el lenguaje inicial del producto es Python. En resumen, lo que Google nos ofrece con este App Engine es la posibilidad de desarrollar productos que se ejecuten en sus propios servidores, obviando el desarrollador tareas como la escalabilidad del producto, ya que éstas son mantenidas por el propio Google. Así, se podría comenzar con una aplicación a muy bajo coste, e ir requiriendo mayores servicios conforme fueran necesitándose. Aunque podría manifestarse una natural reticencia a hospedar nuestras webs en Google, lo cierto es que no es más que lo que ya hacemos cuando contratamos o montamos un servidor propio, eso sí, con tecnología Google tras de sí. Esto implica el uso de la BigTable, un sistema de almacenamiento distribuido y no relacional que ya usaba Google en productos internos, con su propio lenguaje de consultas similar a SQL (el GQL), y el GFS, un sistema de ficheros también propio de Google.


Aunque el cupo de desarrolladores está cubierto desde hace tiempo, lo cierto es que si queremos investigar un poco más sobre las posibilidades de Google App Engine deberemos limitarnos, por ahora, a inscribirnos en la lista de espera que Google ha creado a tal efecto. Entretanto, es posible descargar el SDK para ir desarrollando "en local", así como consultar la documentación disponible en las páginas de Google. A continuación enlazamos un video en que, en apenas 10 minutos, podemos ver una introducción al uso de este nuevo producto:


[youtube]http://www.youtube.com/watch?v=bfgO-LXGpTM[/youtube]

jueves, 7 de febrero de 2008

Hola Mundo con IronPython

Python Logo


Como todo informático de provecho conoce, el "hola mundo" es la prueba de fuego para cualquier lenguaje de programación. Si podemos mandar este mensaje al mundo, de paz, concordia y amistad, todo será posible con el lenguaje en cuestión. Ni las máquinas de Turing, ni formalismos como gramáticas formales, cálculos lambda o computadores cuánticos pueden dar tanto de sí como esa validación universal.


Bromas aparte, hoy he lanzado mi primer hola al mundo a través del CLR de .Net usando además IronPython (una implementación de Python para .Net). Junto a F#, el .Net Framework 3.5 con todas sus novedades y XNA 2.0 tengo diversión (y tenemos temas para el blog) para rato. ¡Que comience la fiesta!


[python]import clr
clr.AddReference("System.Windows.Forms")
import System.Windows.Forms as WinForms
WinForms.MessageBox.Show("Mi hola mundo", "¡Hola mundo!")
[/python]