Archivo

Archivo del autor

Una quincena más… (22/06/2011)

martes, 21 de junio de 2011 4 comentarios
Share Button

MDCert_emblemDCert_emblem

 

Ya hace días que desde Embarcadero se publicó el anuncio y la información sobre el   “Programa de Certificación Delphi”. Dos niveles, el Developer y el Master Developer.

Danysoft he realizado el enuncio en su página (España y Portugal) y desde ahí podéis solicitar información para toda la gestión de los exámenes desde la península.

Links útiles:

Certificación Delphi Developer
Guía de estudio para el examen de Developer (PDF)
Registro para el examen de Developer
Certificación Delphi Master Developer
Guía de estudio para el examen de Master developer (PDF)

Dentro de las Guías de estudio (los dos PDF’s que hay más arriba), además de la información general y de temario, se pueden encontrar unos test de ejemplo para hacerse una idea del nivel de cada una de las certificaciones.

En Delphi About, hace unos días se publicaba un interesante artículo sobre la impresión de documentos desde Delphi; Impresión de cualquier tipo de fichero que pueda existir en el sistema. En un tema/pregunta habitual en los foros (y una necesidad en nuestros programas).

Hace unos días Andreano Lanusse realizó un Webminar gratuito titulado “Aprenda lo que usted puede hacer con el conjunto de herramientas adicionales en RAD Studio XE”. Muy interesante e ilustrativo. El video completo de la presentación lo podéis ver y descargar desde aquí.

Recomendable la visita esta semana a Delphi Heaven para revisar la entrada sobre RTTI; “Object Cloning using the hight level RTTI”. Tanto la explicación como los comentarios son muy interesantes. Todo ello puede ayudar a entender un poco más la potencia y las bondades de la RTTI (esa gran desconocida…  ;-D )

Por ultimo, un enlace de estos que llamamos “practicos”; Al menos para mí, porque es una cosa que de forma periódica y recurrente necesito y nunca tengo “a mano”. Se trata de las directivas de compilación para las diferentes versiones de Delphi. Las ha publicado Jordi Coll en su blog y os las copio aquí:

{$IFDEF VER80}  - Delphi 1
{$IFDEF VER90}  - Delphi 2 
{$IFDEF VER93}  - C++ Builder 1
{$IFDEF VER100} - Delphi 3
{$IFDEF VER110} - C++ Builder 3
{$IFDEF VER120} - Delphi 4
{$IFDEF VER125} - C++ Builder 4
{$IFDEF VER130} - Delphi 5 / C++ Builder 5
{$IFDEF BCB}    - C++ Builder 5 (si está definido VER130)
{$IFDEF VER140} - Delphi 6
{$IFDEF VER150} - Delphi 7
{$IFDEF VER160} - Delphi 8
{$IFDEF VER170} - Delphi 2005
{$IFDEF VER180} - Delphi 2006
{$IFDEF VER185} - Delphi 2007
{$IFDEF VER200} - Delphi 2009
{$IFDEF VER210} - Delphi 2010
{$IFDEF VER220} - Delphi XE
{$IFDEF WIN32}     – Ambiente Windows 32 bits 
{$IFDEF LINUX}     – Ambiente Linux
{$IFDEF MSWINDOWS} – Ambiente Windows genérico
{$IFDEF CONSOLE}   - Ambiente Consola

Un saludo y hasta la próxima.

P.D: Gracias Casimiro por el comentario/errata de las versiones.  ;-)

P.D2: He añadido las relacionadas con C++ Builder y algunas otras (Windows, Linux,…)

Categories: Resumen Tags: , ,

SPAM y los comentarios…

viernes, 3 de junio de 2011 4 comentarios
Share Button

Para los que queráis dejar un comentario a partir de ahora en el foro (thks), os comento que tendréis que estrujaros la cabeza para contestar una dificilísssssima pregunta de carácter matemático para poder llevar a  cabo dicha tarea.

Algo tal que así:


¿Porqué?

Pues supongo que ya os lo imagináis. Imagino que la dirección del Blog debe haber entrado en alguna Base de Datos de Spammers y la cosa ya es insostenible. Hace 3 semanas, apenas recibía al día 10 o 15 comentarios con spam. Esta mañana cuando he entrado en el Panel de administración tenía 172. :-(

Hay la posibilidad de borrarlos con un simple botón, pero a veces te queda la duda de si se «habrá colado» uno que no es SPAM. Así que he optado por esta solución.

Por favor, si tenéis algún problema al comentar, enviadme un correo para comunirmelo. Gracias.

P.D: Especial rabia le estoy cogiendo a un individuo, que consigue postearme un comentario, al minuto siguiente de haber borrardo el SPAM. ¡Parece que me vigila!
A ver si con esta medida consigo perderlo de vista (al menos una temporada).   ;-)

NOTA2: También he añadido al Blog una serie de botones que podéis ver aquí debajo (Facebook, twitter,…) para compartir contenidos y un par para temas más prácticos (correo e impresión); Espero que os sean de utilidad.

NOTA3: No lo había comentado, pero el plugin se llama: Block-Spam-By-Math-Reloaded

 

Un saludo.

Categories: Offtopic Tags: ,

Una quincena más… 31/05/2011

martes, 31 de mayo de 2011 Sin comentarios
Share Button

Para los que hayáis tenido la oportunidad de asistir presencialmente (en Madrid), estos últimos días de Mayo Danysoft ha organizado unos seminarios presenciales sobre RAD Studio;  Se han tratado temas avanzados como las «Open Tools API para extender el IDE» o «La creación de servicios web seguros» utilizando XE.

Para los que (como yo) no estáis en Madrid, y/o no habéis podido asistir, la gente de Danysoft ha organizado otro no-presencial (seminario web) para poder seguirlo vía Internet el día 10 de Junio. Revisad en enlace con la información y desde ahí mismo podéis apuntaros.

Esta semana «he aterrizado»  en la web de TurboPHP (http://www.turbophp.com/). Un IDE para el desarrollo visual de aplicaciones con PHP. Las imágenes del IDE tienen muy buena pinta (desde el punto de vista del programador Delphi y no del desarrollador de PHP -que de eso no entiendo mucho-). ¿Porqué digo esto? Ni más ni menos, que porque este proyecto está realizado con Delphi. El proyecto ahora es OpenSource y el código está disponible para quien quiera acceder a él.

 

Para los que no habéis leído alguna de las entradas de la serie que Salvador ha publicado sobre Expresiones regulares, utilizando las mejoras de Delphi XE, os animo a que lo hagáis. Es un tema complejo y la explicación es muy buena y detallada. En el momento de escribir estas líneas ya está completada con 4 entradas, que cubren de manera muy amplia el tema.

Visita y lectura obligada obligada.

 

Para acabar un par de enlaces «Off-Topic». El primero es una interesante reflexión de Casimiro sobre piratería en España, sobre los derechos de autor, los contenidos digitales, la cultura…
«La piratería no existe – 5 propuestas para el crecimiento digital».

La segunda es una mención al anteproyecto de ley que el Gobierno acabar de aprobar, conocida como Ley de igualdad de trato; Desde los blogs ya se conoce como «La ley de Mozdaza».

Desde esta otra página se explica con detalle dónde está el sentido real de esta ley y cómo puede afectar a todos los blogs esta nueva ley si llega  a aprobarse.

Y hasta aquí hemos llegado.

Categories: Resumen Tags: ,

Un mes más… 15/05/2011

lunes, 16 de mayo de 2011 Sin comentarios
Share Button

Como recopilatiorio de las últimas semanas (ya no haré referencia a días porque desde la ultima entrada ya han pasado unos cuantos…), os comento algunas páginas que he visitado y que me han parecido interesantes.

El primero, al que no recuerdo cómo llegué y que me pareció muy curioso, vendría a ser algo así como «La tabla periódica de las API y aplicaciones de Google«; ¿Que qué es esto? Pues una de estas cosas simpáticas que hacen los de Google y que me pareció interesante y original (a parte de la mera función informativa).

Ya hace unos cuantos días que Rodrigo (RRUZ) publicó en su blog una entrada sobre cómo utilizar eventos en WMI. imprescindible (esta y las anteriores sobre WMI) para aquellos de vosotros que estéis interesados en este tema al igual que yo. Mucho nivel en las explicaciones. Mucho código que puede ayudar a aclarar un tema «complejo» como este y muchas posibilidades las que abre el mundo de WMI.

En más de una ocasión he utilizado como sistema de traducción en mis aplicaciones GNU getText (y la versión para utilizar con Delphi) y ya he hablado en el blog antes sobre él. Utilizando este sistema acabamos generando ficheros .po que posteriormente se traducen utilizando algún editor de los muchos disponibles que existen (poedit, es el que he utilizado yo). Relacionado con el tema de la traducción, el otro día me encontré con esta web: (http://translate.umpirsky.com/)  que nos facilita el trabajo de traducción de los ficheros .po mediante el traductor de Google.  Debe haber más, pero este me pareció especialmente sencillo y simple. Basta con subir el fichero, seleccionar el idioma y esperar a que acabe para bajar la traducción.

Hace unos días, también desde el blog de Rodrigo, nos llega una mejora de la aplicación Delphi IDE Theme Editor,  que ahora soporta Delphi 5/6. Para los que todavía mantenemos aplicaciones antiguas , como yo, nos permitirá darle «un poco de alegría» al IDE.

Navegando por internet, he llegado a una web curiosa y que me parece una gran idea. Se llama Rosetta Code; No se si la conocéis.
Supongo que la idea no es nueva, pero tal y como la plantea en esta web me parece simple y útil.  Además el formato WIKI es sencillo de modificar y entender.

Se trata de tener una serie de problemas, programas o algoritmos (se pueden proponer nuevos) de forma que la programadores de forma voluntaria puedan aportar su código para resolverlos en los diferentes lenguajes. Por ejemplo, aquí podemos ver la implementación del borrado de un fichero en nada menos que 61 lenguajes distintos, o el archiconocido «Hello Word!» en nada menos que 170 lenguajes distintos.

Podéis consultar la lista de problemas, la lista de lenguajes, o centrados en Delphi, los problemas que todavía no tienen implementación en Delphi. Os animo a contribuir (yo ya lo he hecho ;-) ) y ampliar los ejemplos en Delphi/Object Pascal.

Por si no lo habéis leído, estos días he publicado la versión 1.4(beta) de TrackInfo.
Una aplicación para obtener información, visualizar, convertir,… ficheros en diferentes formatos que incluyen tracks o rutas de puntos geográficos; Normalmente extraídas desde dispositivos provistos de un GPS. He añadido algunos formatos de conversión para abrir rutas directamente en los formatos más utilizados y el multiidioma, a parte de corregir algunos errores.

 

 

Por último os adjunto un video donde se puede ver cómo finalmente se ha descubierto un sistema para «generar movimiento continuo» o también conocido como «dispositivo antigravedad»; Además es lo suficientemente sencillo como para probarlo en casa. ;-D
Está basado en dos principio conocidos y de sobras demostrados:

  1. ¿Qué pasa si una tostada con mantequilla se te cae al suelo? Por ley de Murphy, esa tostada siempre cae con el lado que tiene la mantequilla hacia abajo (link -ver imagen-).
  2. Es conocido que los gatos cuando caen, siempre caen a cuatro patas.

Por lo tanto combinando ambos, tenemos la siguiente paradoja:

[youtube Il1WZwGjtEs nolink]

 

Aquí podéis ver una imagen de cómo reproducirlo.

Y como solían decir en el 1,2,3…  «hasta aquí puedo leer».

La próxima semana, más…

Un saludo.

 

Categories: Otros, Resumen Tags: ,

TrackInfo Versión v.1.4b

jueves, 12 de mayo de 2011 5 comentarios
Share Button

Publicada la versión 1.4b de la aplicación TrackInfo.

Se han corregido algunos bugs de la anterior versión y como cosas más relevantes de la versión nueva están:

  • Sistema nuevo de Multiidioma para la aplicación donde es más fácil crear nuevos ficheros de idioma.
  • Ahora el programa permite abrir los formatos de fichero más importantes directamente (sin convertirlos préviamente):

GPS Trackmaker (*.GTM)
Google Earth (*.KML)
OziExplorer (*.PLT)
Garmin Training Center (*.TCX)
Mapsource (*.GDB)
CompeGPS (*.TRK)
GPS Exchange Format (*.GPX)
Alan Map500 TrackLog (*.TRL)
Garmin Mapsource (*.MPS)
Magellan File -eXplorist- (*.UPT)
Swiss Map 25/50/100 (*.XOL)

La descripción completa de la aplicación y las características completas en la página de la aplicación. Desde ahí se puede descargar de forma gratuíta el fichero.

Como siempre las sugerencias, comentarios y demás son bien recibidos.

Un saludo.

 

Categories: Aplicación, Offtopic Tags: , ,

IBPIndexCalc v.1.0

viernes, 29 de abril de 2011 Sin comentarios
Share Button

IBPIndexCalc es una aplicación que permite obtener multitud de datos (en general «el grado de dificultad») de un Track/Ruta realizado en bicicleta (sea de carretera o de montaña). Aunque los datos podrían ser aplicados a cualquier track realizado en otra actividad.

Para ello el programa utiliza la web  de IBPIndex (http://www.IBPIndex.com); Imprescindible para todos aquellos que salís en bici y utilizáis/generáis track con GPS.

Este índicxe IBP (Interactive Bicycling Parameters) se obtiene analizando los datos de latitud, longitud y altura en multitud de puntos del recorrido. A partir de estos puntos se calculan las distancias recorridas en los diferentes tramos de subidas y bajadas (1%, 5%, 10% etc..) se computan los % que representan sobre el total, los metros totales ascendidos, descendidos, los ratios medios de subida y de bajada, los Km. totales, y la distribución de los tramos de subida. Si queréis saber más y ampliar información sobre el tema visitad la web de IBPIndex (proceso de cálculo, corrección de errores, formato de puntuación,…).

IBPIndexCalc utiliza los componentes Indy para el acceso a la Web. Además implementa una clase derivada de TThread que permite que el pograma principal no se bloquee mientras espera la respuesta desde la web. Estructura de la Clase TWebThread:

{ : Clase para realizar consultas utilizando thread a la Web. }
TWebThread = class(TThread)
private
IdHTTP: TidHTTP;
Stream: TIdMultipartFormDataStream;
FTrackFileName: string;
FwebBrowser: TWebBrowser;
FResponse: string;
private
FURLNavigate: string;
FURLPDF: string;
function _RepairLinks(StrPage: string; var URLpage: string;
var UrlPDF: string): string;
protected
 
public
// ejecutar el procedimniento.
procedure Execute; override;
// componente de navegación.
property webBrowser: TWebBrowser read FwebBrowser write FwebBrowser;
// Fichero de Track/ruta.
property TrackFileName: string read FTrackFileName write FTrackFileName;
// : Propiedad para recoger la respuesta desde la Web.
property Response: string read FResponse write FResponse;
// URL de navegación.
property URLNavigate: string read FURLNavigate write FURLNavigate;
// URL del PDF de respuesta.
property UrlPDF: string read FURLPDF;
// : Constructor redefinido.
constructor Create(AFileName: string; wb: TWebBrowser);
end;

Una vez que el programa obtiene respuesta de la Web, la analiza para detectar posibles errores y para extraer los links útiles al usuario. En este caso el PDF generado y la página de resultados.

La aplicación y la clase UTWebThread puede se útil, modificando determinados, para realizar un trabajo similar en otras páginas webs.

Es totalmente gratuíta y el código fuente está disponible.

<DESCARGAR EJECUTABLE>

<DESCARGAR CÓDIGO FUENTE>

 

 

Versión v.1.2b de la aplicación TrackInfo

martes, 19 de abril de 2011 4 comentarios
Share Button

Acabo de publicar la versión 1.2 de TrackInfo.

TrackInfo es una aplicación que permite obtener información y visualizar sobre un mapa, rutas en formato GPX (GPS eXchange Format). Está pensado (o enfocado) a la carga de archivos que provienen desde un dispositivo GPS. Permite la conversión de rutas entre diferentes formatos.

NEW:

  • Actualizados los formatos de conversión;  KML (Google Earth), TCX (Garmin training center), GTM (GPS TrackMaker), PLT (Ozi explorer), GDB (Mapsource), TRK (CompeGPS), XOL (Swiss Map), …
  • Animación de recorrido de la ruta
  • Gráficos de Alturas y velocidad sincronizados con la animación.
  • Información extendida para los puntos que forma la ruta (Velocidad puntual, distancia acumulada, ascenso acunulado, descenso acumulado,…)
  • Corrección de errores y bugs respecto a la versión anterior.
  • Mayor rapidez en la carga de rutas y en la conversión.
  • Mejoras menores.

Descripción completa de la aplicación y Descargas.

Una quincena más… 25/03/2011

viernes, 25 de marzo de 2011 Sin comentarios
Share Button

Repaso, una vez más, las últimas noticias, apuntes y comentarios que me han merecido la pena en los últimos días. Muchos otros me los he dejado en el tintero por variadas razones; Ya sea por que no me merecen suficiente interés, o porque ya se han tratado tanto, que he «perdido» el interés por ellos…  ;-)

Estos últimos días ha visto la luz un versión nueva de UniGui; Concretamente la  v. 0.84.3, aunque algunos días después veo que han salido la versión 0.84.4 que corrige algunos bugs y la versión 0.84.5 que añade algunos cambios. Para los que no lo conozcáis es un Framework para desarrollar aplicaciones web utilizando Delphi (Web Application Framework for Delphi). Para ello se basa en las librerías de JacaScript, ExsJS. Recomiendo, si queréis haceros una idea rápida del potencial, que reviseis las demos disponibles en la web.

Rodrigo (rruz), en su blog The Road of Delphi, ha publicado la aplicación Delphi IDE Theme Editor, que  tal y como explica él, está pensado para facilitar la creación de estilos visuales para el IDE de delphi y poder importar temas desde otros IDEs como Visual Studio, así como compartir entre los usuarios sus creaciones.
Antes de publicar esta entrada, veo que hay una actualización de este programa, que  incluye algunas novedades. Mejoras en el resaltado de líneas, importación de temas desde Eclipse, facilidad para modificar un tema creado cambiando valores de Hue y Saturation, y algunas cosas más. Para los que deseéis personalizar vuestro IDE de trabajo (desde Delphi 7 en adelante -los que tenemos Delphi 6 tendremos que esperar a actualizar-) esta aplicación es imprescindible.

También se ha publicado un nueva versión «no-oficial» de las RxLib que soporta DelphiXE; En mi caso hace unos días había hablado sobre una versión «portada» (con pequeños cambios) para que funcionara en la última versión de Delphi. Esta incluye nuevas funciones y nuevos componentes (17 según leo). Podéis ver la los cambios principales introducidos en esta versión revisando esta página.  Desde ahí mismo o desde esta página de recopilación de versiones podéis descargar esta versión.

Esta semana he actualizado todo el contenido que hay de la web en DropBox, tal y como expliqué en entradas anteriores (entrada I y entrada II), están accesibles el código de todos los ejemplos, los componentes, las recopilaciones de las RxLib, artículos,…

Esta semana se ha publicado la versión 4 de Mozilla FireFox (que pronto alcanzará los 25 millones de descargas); Entre las cosas que se pueden comentar estás, el rediseño de la interfaz (barra inferior, pestañas, menú,…), gestión renovada de los complementos, mejoras en la seguridad de la navegación e inclusión del modo privado, soporte para HTML5, mejoras sustanciales en la velocidad,  e inclusión «de serie» de algunas características que antes se debían realizar mediante extensiones, por comentar sólo algunas características. Como curiosidad, podéis ver las descargas que se han producido hasta el momento en esta página.

Un saludo.

Categories: General, Offtopic, Otros, Resumen Tags: ,

Actualización de las RxLib -no oficial-

viernes, 18 de marzo de 2011 4 comentarios
Share Button

Esta semana se ha publicado un nueva versión «no-oficial» de las RxLib que soporta Delphi XE; En mi caso hace unos días había hablado sobre una versión «portada» (con pequeños cambios) para que funcionara en la última versión de Delphi. Esta incluye nuevas funciones y nuevos componentes (17 según leo). Podéis ver la los cambios principales introducidos en esta versión revisando esta página. Desde ahí mismo o desde esta página de recopilación de versiones podéis descargar esta versión.

Por cierto, el link de descarga aparece en la página de recopilación o podéis user el que aparece debajo de estas líneas:

<Link de Descarga RxLib v2.75_1.0_D5_DXE>

Visualizar un fichero KML en Delphi II

lunes, 14 de marzo de 2011 4 comentarios
Share Button

Esta entrada se podría considerar como una «ampliación» de la última publicada relacionada con los ficheros KML, Generar ficheros KML de rutas; Tracks en Google Maps. A partir de un tema surgido en los foros del Clubdelphi de cómo visualizar estos ficheros directamente sobre Google Maps dentro de una aplicación Delphi, he modificado el programa anterior (que incluía la conversión desde GPX) para poder visualizarlos directamente.

En un ejemplo más simplificado, y enfocado a los ficheros KML. Como ya dije anteriormente, este tipo de ficheros pueden almacenar otros tipos de información y en este ejemplo se leen los datos directamente desde este tipo de ficheros (en este caso sólo la ruta).

Además el mapa está optimizado para visualizarse a tamaño completo, y no según el tamaño de la ventana como estaba anteriormente (esto implica la optimización de que no se recarga la página al cambiar el tamaño).

También se ha modificado el recurso de la página Web, para que automáticamente se calcule en «centrado» y el «zoom» del mapa a partir del Track que se va a visualizar. Para ello se utiliza el siguiente código:

var polylineBounds = polyline.getBounds();
var ZoomLevel = map.getBoundsZoomLevel(polylineBounds) - 1;
map.setCenter(polylineBounds.getCenter(), ZoomLevel);

Se puede descargar el ejemplo desde aquí (incluye los fuentes).

<Descargar fuentes>

AÑADO: compilación en Delphi XE2.

Debido a un cambio en la definición de la función EnumResourceModules, que pasa de usar LongInt a NativeInt, hay que realizar un cambio en el procedimiento que se le pasa como parámetro, modificando este dato.
La definición del procedimiento, ahora queda así:

function _MyEnumResourceModules (
Instance:{$IFDEF VER230}NativeInt{$ELSE}Pointer{$ENDIF};
Data:Pointer):Boolean;