Xeround y DBExpress–Delphi y una propuesta de Cloud Database

Hace unos días Domingo Aguilera me recomendó que evaluara un nuevo servicio de base de datos en la nube basado en MySql. Se trata de Xeround, un servicio muy interesante que ofrece, en su actual versión beta, una suscripción sin costo que incluye una instancia de su servicio con una cuota de 500 Mb con la opción de solicitar aun mas almacenamiento.

Xeround dice ser un servicio autoescalable y “elástico” muy al estilo de RDS de Amazon Web Services. Por el momento existe la versión de prueba sin costo pero eventualmente será necesario pagar por el servicio y al parecer puede llegar a ser mas económico que RDS de Amazon (RDS es un servicio de base de datos relacional en la nube de Amazon basado en MySQL al igual que el servicio de Xeround).

Algo interesante acerca de este servicio es que es una propuesta diferente al RDS de Amazon aún cuando esta montado sobre la misma infraestructura de Amazon Web Services. En esta liga se pueden encontrar las diferencias entre los dos servicios: http://xeround.com/mysql-cloud-db-overview/amazon-rds-feature-comparison/

Al ver esto di de alta una cuenta en Xeround y en cuestión de minutos mi instancia de prueba con cuota de 500 Mb y mi base de datos quedaron configuradas.

Despues de crear una cuenta, Xeround proporciona una interface de usuario web que consiste en un panel de  control para administrar todo lo relacionado con la instancia del servicio además de un panel de control basado en PHPMyAdmin desde el que se puede crear bases de datos o importar bases de datos ya existentes de una forma rápida. Desde el panel de control de la instancia se puede ver información como el uso de CPU, conexiones activas, uso de memoria y diferentes monitoreos muy útiles. La siguiente imagen muestra una vista del panel de control.

xeroundPanel

Lo primero que se me ocurrió hacer con este servicio fue probar una conexión con Delphi usando DBExpress. Todo funcionó muy bien, lo único que hay que hacer es configurar una conexión DBX desde el Data Explorer de Delphi (en este caso utilicé la versión 2010) y usar los datos de conexión que llegaran a la cuenta de email registrada al solicitar el servicio:

dbxConf

Aquí existe un detalle muy importante a tomar en cuenta, el driver para MySql incluido en DBExpress (al menos hasta la versión de Delphi 2010) soporta hasta la versión de MySql 5.1.X, la versión de MySql incluida en la instancia de Xeround es la 5.1.42. En mi caso, tenía instalado localmente MySql 5.5 de tal forma que me vi obligado a instalar MySql 5.1 para tener la libreria libmysql.dll (utilizada por el driver de DBExpress) en la versión correcta.

Eso es todo lo que hay que configurar y a partir de este punto la aplicación se trabaja exactamente igual que cualquier otra aplicación DBExpress. En una conexión a internet domestica de un megabit la respuesta a traer registros, aplicar cambios y obtener metadatos del servidor fue bastante aceptable, aun que esta información no es nada concluyente por el momento ya que se trata de una simple prueba de conexión con una base de datos con muy pocos registros y con un solo usuario conectado, sería interesante hacer verdaderas pruebas de desempeño para evaluar este servicio.

Algo que seria muy bueno ver con respecto a todo esto es un servicio de Cloud Database basado en Firebird, no me suena tan descabellada la idea si tomamos en cuenta que Firebird ha ido poco a poco creciendo en popularidad.

Posted in Bases de datos, Cloud | Tagged , , , , | Leave a comment

Python for Delphi – Episodio II

En la primera parte de este tema hablamos sobre que es y porque querríamos utilizar Python for Delphi. En esta ocasión veremos de donde obtener esta útil herramienta para ampliar nuestro arsenal de desarrollo de software.

Si hacemos una búsqueda en google para “python for delphi” (en estos días) vamos a encontrar, como una de las primeras respuestas, una liga a http://mmm-experts.com/Products.aspx?ProductId=3. En este lugar se puede encontrar información general sobre Python for Delphi y un tutorial muy útil. El problema es que en la liga de descarga se obtiene una versión muy antigua de la herramienta, al menos en fechas recientes cuando yo lo descargué.

Investigando un poco nos podemos dar cuenta que actualmente el proyecto actualizado se mantiene en un repositorio de Google code: http://code.google.com/p/python4delphi/source/checkout

El proyecto se distribuye con código fuente bajo licencia MIT y también incluye los paquetes (.dpk) que se instalaran en Delphi. Vamos a ver como descargar e instalar todo lo necesario.

Espero que la mayoría de los lectores estén ya acostumbrados a usar algún tipo de control de versiones… si, así es, aun cuando sean programadores solitarios es una muy buena idea usar control de versiones… si, también si son escritores de cuentos y novelas o notarios públicos es buena idea usar control de versiones. Para obtener una copia de Python for Delphi vamos a necesitar instalar un cliente de Subversion uno de los mas populares sistemas de control de versiones (no es mi favorito pero en otra ocasión hablaremos mas sobre control de versiones). Recomiendo usar TortoiseSVN.

Para los lectores que no estén familiarizados con sistemas de control de versiones recomiendo ampliamente que se tomen unos minutos ahora mismo para leer los textos de mi amigo y socio Salvador Gómez acerca de este tema:

La evolución del control de versiones, primera parte.
La evolución del control de versiones, segunda parte: Distribuido vs. Centralizado.
A la fecha de este artículo van hasta aquí pero Chava esta por publicar mas al respecto.

Regresando al tema que nos atañe. Para descargar Python for Delphi necesitamos hacerlo clonando el repositorio como se indica aquí: http://code.google.com/p/python4delphi/source/checkout

Ya sea desde línea de comandos o usando el menú contextual que ahora tenemos, después de haber instalado Tortoise, obtendremos el repositorio de Python for Delphi. Desde línea de comandos se utilizaría el siguiente comando:

> svn checkout http://python4delphi.googlecode.com/svn/trunk/

No profundizaremos en como instalar y usar TortoiseSVN en este articulo porque esta fuera del alcance del tema central pero pueden solicitar en los comentarios mas información para no alargar mucho este texto.

Una vez que tenemos una copia, vamos a proceder a instalar los paquetes en nuestra versión de Delphi. En mi caso, coloque el repositorio en un folder llamado C:\PythonForDelphi\. A partir de que tenemos ya nuestra copia descargada podemos ir a buscar los paquetes correspondientes con la versión de Delphi que tengamos instalada, esto se encuentra, en mi caso, en: C:\PythonForDelphi\PythonForDelphi\Components

Aquí encontraran los dpk para todas las versiones de Delphi hasta la 2010 con el siguiente patron de nombres: Python_dX.dpk donde la X corresponde a la versión de Delphi, Python_bdsX.dpk para las versiones Borland Developer Studio y  para el caso de Delphi 2010 encontraremos el paquete PythonVCL_2010.dpk. Solo tenemos que seleccionar el paquete que corresponda, abrirlo desde Delphi e instalarlo. Tampoco vamos a ver el tema de como instalar paquetes de componentes en Delphi en este momento pero en los comentarios podríamos hablar al respecto.

imageUna vez que se registren los componentes el IDE nos avisara. En este momento ya tendremos en la paleta de herramientas un set de componentes para manejar en nuestras aplicaciones scripts de Python. En los siguientes artículos de este tema vamos a ver que cosas se pueden hacer con estas herramientas.

Hasta aquí no hemos instalado el lenguaje de programación Python, ningún interprete de Python y ningún IDE de Python. Realmente no es necesario ya que Python for Delphi incluye DLLs con diferentes versiones del motor de Python. Aún así, es muy recomendable que tengamos instalado también el lenguaje y el interprete para probar y experimentar con el lenguaje y la infinidad de bibliotecas y paquetes disponibles allá afuera.

En la siguiente entrega de este tema veremos como conseguir Python y varios paquetes que nos habilitaran para hacer cosas muy interesantes con Delphi.

Por ahora hay mucha carga de trabajo pero trataré de que no pase mucho tiempo.

Live long and prosper.

Posted in Delphi | Tagged , , | Leave a comment

Scripting – Python for Delphi, lo mejor de dos mundos

Hace tiempo platicaba con Salvador acerca de las opciones existentes para Delphi con respecto a motores de scripting. Pascal Script de RemObjects es la primera herramienta que viene a la vista al hacer una búsqueda en google. No cabe duda que este motor de scripting para Delphi tiene muy buenas características, la prueba de esto es que es parte integral de InnoSetup, una de las mejores herramientas para crear instaladores de aplicaciones de escritorio (Win32).

Pascal Script es un complemento muy interesante para desarrolladores Delphi pero el verdadero motivo de este post es otra herramienta de scripting que llamó mucho nuestra atención y que por cierto, no tiene nada que ver con Pascal. Python For Delphi.

Antes de seguir y para aquellos que no estén familiarizados con el concepto de motores de scripts, ¿Que es un motor de scripts y para que querríamos utilizarlos?

Un motor de scripts es una herramienta que permite crear extensiones de funcionalidad para nuestras aplicaciones desde una perspectiva externa. Se trata de usar código no compilado para delegar partes de la operación a un subsistema interpretado que nos permite modularizar mejor la lógica de negocios y tener una separación de competencias mas optima en un sistema.

Aaaburriiidoooooo,….

No tan aburrido, de hecho es una excelente idea. Con este tipo de tecnologías podemos crear extensiones y complementos en una aplicación que son muy fáciles de distribuir y mantener y lo mejor de todo, sin tener que recompilar código, solo enviando un script en un archivo de texto plano… listo, sistema actualizado.

Ok, pero ¿porque usar Python?

Python es un lenguaje extremadamente versátil, simple, comprensible, minimalista y muy poderoso además de ser totalmente multiplataforma y libre. En Metacode hemos estado experimentando con Python y estamos gratamente sorprendidos con sus cualidades. Existe una gama amplísima de frameworks y bibliotecas (o librerías, como tu le llames) para cualquier situación. El código Python es de muy alto nivel, fácil de mantener y permite hacer una considerable cantidad de operaciones con pocas líneas de código. Python for Delphi es un motor de scripting para Delphi basado en el lenguaje Python, con el cual se pueden crear extensiones que utilicen cualquier base de datos, procesar hojas de calculo, desarrollar operaciones de comunicación en redes, web services, manejo muy avanzado de colecciones y cadenas y mas.

En los siguientes artículos iremos incluyendo algunas historias sobre como este motor puede ayudar a los programadores de Delphi a simplificar su existencia.

Posted in Uncategorized | Tagged , , | Leave a comment

Probando cliente para blog Windwos Live Writer

WLWEste es un post de prueba creado con Windows Live Writer de Microsoft.

Hasta este momento es el cliente desktop para blogs mas completo que he visto. Explota al máximo las características de los diferentes tipos de blog: WordPress, Blogger y todos los otros blogs populares. Tiene muy buenas capacidades de formato de texto y acceso rápido a inserción de elementos multimedia además de un buen manejo de administración de cuentas de blogs. Usa el corrector ortográfico de Office para cualquier idioma.

La vista previa de los posts es de lo mejor, puede utilizar el mismo tema que usa tu blog para pre visualizar de forma exacta lo que estas publicando.

Se puede descargar sin costo y es parte de la suite de aplicaciones de Windows Live. Ojalá existiera esta herramienta también para los demás sistemas operativos.

Muy recomendable.

Posted in Blogs | Tagged | Leave a comment

Probando WordPress desde cliente desktop

Este es un post de prueba usando el cliente de escritorio para blogs BlogDesk.

Este cliente es muy facil de configurar, parece funcionar bien con WordPress pero solo esta disponible para Windows y solo incluye por default un diccionario para corrección ortográfica en ingles. Aun asi vale la pena ya que es gratuito.

BlogDesk

Imagen de BlogDesk operando.

Posted in Blogs | 1 Comment

Hablemos de software

En Metacode estamos iniciando este nuevo blog en el cual plasmaremos ideas y opiniones acerca del desarrollo de software.

Aqui encontraran temas variados: herramientas de desarrollo, metodologias, frameworks de programación, lenguajes, noticias, información sobre nuestros servicios y mas.

El staf de Metacode espera que este blog sea de utilidad para toda la comunidad de desarrolladores.

Posted in General | Tagged | Leave a comment