Código de ejemplo de la sesión de DataSnap en CodeRage América Latina 2014

CodeRage Latinoamérica 2014

En relación a mi presentación en el reciente CodeRage América Latina 2014, titulada:

Aplicaciones iOS y Android con soporte para arquitecturas Multi-capas utilizando DataSnap

Haciendo clic en el botón, puedes descargar el código del ejemplo que se desarrolló durante la misma
Sigue leyendo

Minientrada

Después de pensarlo durante algún tiempo, por fin me decidí a empezar un blog en Inglés, al que he nombrado jachguate’s blog. No abandonaré este, que sigue siendo mi espacio primario y mi intención es que, siempre que lo amerite, el contenido sea publicado en ambos idiomas, mientras que habrá algunos casos donde la audiencia sea distinta y por tanto publique solamente en alguno de ellos.

Mi objetivo no es, sin embargo, el de mantener una traducción de uno de los sitios en el otro, pues para eso ya el traductor de Google hace una decente tarea.

Lo veo más bien como una oportunidad para mejorar mi Inglés y, como lo dije en mi post de presentación ayer, con ello también alcanzar una audiencia distinta, en otros rincones del globo.

Si lees Inglés, te invito a dar una vuelta por allá.

Clase genérica para convertir una enumeración en cadena y viceversa

Una de las cosas que siempre olvido como hacer, y por lo mismo me toca hacer una búsqueda en Google para volver a escribir el código necesario, es como convertir una enumeración en un string y viceversa (EnumToStr, StrToEnum).

Esto es, primero, porque tradicionalmente hay que escribir una rutina distinta para cada tipo de enumeración que nos interesa, o peor aún, escribir una llamada directamente a GetEnumName/GetEnumValue, que son las que hacen el trabajo sucio.

También esto se debe, en parte, porque hasta ahora no se me había ocurrido la idea de valerme de los genéricos para tener un trozo de código que sea re-utilizable y meter mi rutina en alguna biblioteca de las que suelo tener a mano mientras escribo código.

Ya con la idea, y luego de algún esfuerzo, escribí la clase que ahora les comparto, pero primero, veamos su uso, que vendría a ser, por ejemplo:

begin
  Memo1.Lines.Add(
    TEnumConverter<TAlign>.ToString(Self.Align));
end;

Sigue leyendo

Delphi para Android es una realidad

AndroidHelmetHoy, a primera hora de la mañana, Embarcadero ha realizado el anuncio oficial de RAD Studio XE5, la primera versión de RAD Studio y Delphi que incluye soporte para compilar proyectos para Android, la plataforma móvil más utilizada en nuestros días. Este compilador viene a sumarse a los tradicionales compiladores para Win32, Win64, y a los más recientes, para OSX e iOS de la herramienta.

No puedo ocultar que estoy muy emocionado, con grandes expectativas para esta nueva versión de Delphi, sobre la que hay mucho por decir y en la que se enfocarán mis próximas publicaciones.

Por ahora, la idea de esta corta entrada, es hacer eco de la noticia y dejarte estos enlaces oficiales de Embarcadero, donde encontrarás más información (en inglés):

RAD Studio XE4 está aquí

delphihelmet100x100

El día de hoy ha sido anunciado oficialmente el lanzamiento de RAD Studio XE4 y Delphi XE4, cuya principal novedad es el soporte para desarrollo de aplicaciones nativas para iOS, basado en un nuevo compilador, conocido como nextgen que debuta en su versión para procesadores ARM, y utilizando FireMonkey3 como plataforma de desarrollo visual

Por ahora estoy corto de tiempo para entrar en detalles de esta nueva entrega, que son muchos, pero si estas interesado en el desarrollo multi-dispositivo, esta es, con seguridad, la versión de Delphi que estabas esperando, así que te invito a probarla!

Actualización del libro Programación paralela con OmniThreadLibrary

Portada del libroEl día de hoy, luego de algunos meses de espera, se ha publicado la versión actualizada del libro Programación paralela con OmniThreadLibrary.

Esta versión contiene ya culminado el capítulo 5: Sincronización, que habla sobre algunas primitivas de sincronización disponibles en la biblioteca, y vuelve a estar al día con la versión en Inglés. Todos los lectores anteriores pueden realizar la descarga de esta nueva versión sin costo alguno, desde su página de administración de compra, en Leanpub.com.

Si aún no has comprado el libro, ¿qué esperas? :D

FastMM, FullDebugMode y Fugas de memoria

delphihelmet100x100

Hoy, 14 de febrero de 2013, Delphi alcanza la mayoría de edad. A todos
los que trabajan con esta herramienta:

¡Felices 18 años de Delphi!

FastMM 4

Por si no lo sabes, FastMM es un manejador de memoria de código abierto, desarrollado por Pierre le Riche como reemplazo al manejador de memoria de Borland utilizado en Delphi desde el inicio, y que se convirtió en el manejador de memoria por defecto a partir de Delphi 2006.

Eso significa que, si utilizas Delphi 2006 o superior, ya estas usando FastMM, pero probablemente no estás sacando todo el provecho que podrías de él

En este artículo no hablaremos a profundidad sobre las ventajas de FastMM, ni lo compararemos con otros manejadores de memoria existentes. Por hoy, nos centraremos en la opción FullDebugMode de FastMM y veremos como este modo nos ayuda a resolver las fugas de memoria que puede haber en nuestras aplicaciones

Sigue leyendo

Hoy google celebra a la madre de los programadores

Doodle de Ada Lovelace

Hoy Google celebra, con un Doodle el 197 aniversario del nacimiento de Ada Lovelace, considerada la primera persona en escribir un programa para ser procesado por una máquina, y por tanto, madre de todos los programadores.

7zip y Delphi

7ziplogoHoy me dí a la tarea de buscar la manera de trabajar con archivos 7zip desde Delphi.

Encontré así la biblioteca d7zip, publicada bajo licencia MPL1.1, lo cual en pocas palabras, nos permite hacer uso de ella en proyectos libres o privativos.

A pesar de que la biblioteca no ha publicado nuevas versiones desde Abril del 2010 (v.1.2), el log de SVN muestra alguna actividad aún en noviembre del 2011 y es compatible con las últimas versiones de Delphi, lo cuál me pareció aceptable para considerarlo un proyecto vivo.

Antes de decidirme a utilizarla, quise comprobar si encontraría algún problema para compilar y ejecutar aplicaciones de 64 bits con esta, tomando en cuenta que la descarga incluye únicamente la versión de 32 bits para el archivo 7z.dll (versión 4.65).
Sigue leyendo

Delphi XE2/XE3 – Creando aplicaciones VCL con estilo

A partir de Delphi XE2 y ahora también en XE3, las aplicaciones Delphi contienen un nuevo motor de Temas y Estilos.

Esto significa que podemos hacer una aplicación visualmente más atractiva sin prácticamente ningún esfuerzo, y también que podemos añadir nuestro propio estilo personalizado a las aplicaciones.

Por hoy, veremos de manera rápida cómo realizar una aplicación con un estilo diferente en Delphi, cómo podemos interrogar a la propia aplicación sobre los estilos disponibles y cómo podemos, en tiempo de ejecución, cambiar de estilo.

Pero, primero, veamos el resultado de compilar nuestra sencilla aplicación Demo y ejecutarla:

Formulario con estilo

Sigue leyendo