Delphi Básico, Delphi Solidario y Comunidad Hispana

octubre 13, 2011 en Comunidad, Delphi

Hola compañeros,

como sabéis, hace un tiempo y con motivo del cambio de nombre del blog, incrementé las actividades en las redes sociales y mas concretamente en Facebook, creando un grupo de facebook que respondía al mismo nombre “Delphi Solidario“, desde el que se inició una etapa de difusión de contenido para nuestra Comunidad.

Respecto al cambio del nombre del blog, y de por qué pasó de ser Delphi Básico a llamarse Delphi Solidario podéis leer en la entrada Cerrando temas… , donde intentaba justificarlo y compartirlo con vosotros. Este punto lo podéis leer al final de la misma.

Lo realmente importante es que el grupo de facebook ha ido creciendo, superando las primeras expectativas y se han sumado compañeros sin los que hubiera sido imposible proyectarse hacia el exterior ni pensar en que el grupo puede llegar a más. No es un tema de que se incremente el numero de participantes -que se ha incrementado de forma considerable- sino que además, el grupo de facebook, está acogiendo a los compañeros que han colaborado activamente en la difusión de contenidos de habla hispana, intentando abrir los brazos simbólicamente hacia todos, sin excluir a nadie en este intento de crear un lugar común para nuestra Comunidad. La idea no es que dejen de existir los blogs o los foros, sino todo lo contrario, en dotar a la Comunidad de un punto de encuentro que los refuerce, manteniendo su propia idiosincracia y carácter; un lugar en el que puedan difundirse todos ellos y cualquier usuario (nuevo o no tan nuevo) que busque información sobre cualquier tema de nuestra herramienta de desarrollo, encuentre una respuesta real y efectiva. No buscamos dividir ni ser protagonistas, que entiendo es una idea que puede quedar en el aire y que de alguna forma hay que despejar, sino participar y proponer la creación de un marco que sea representativo de todos los bloggers, comunidades y grupos de Delphi. Y se está luchando también para que en dicho marco, se pueda contar con Embarcadero y que no sea ajeno a nuestra Comunidad.

Se que todo esto es un tanto complicado y que el grupo de facebook es el primer paso, un poco provisional, de una visión de Comunidad mas ambiciosa y solidaria. Pero os aseguro que estamos en ello.  :-)

Por ello, finalmente y tras meditarlo varios días, y antes de seguir con las acciones de difusión del grupo, he pensado que era necesario desligar mi blog del grupo de facebook, de forma que no se pudiera entender que encuentro un aprovechamiento del esfuerzo ajeno y que a mi me beneficia en algo. Y para que no exista la mínima duda de que esto no es así (y aunque se que los que me conocen lo saben hasta el punto de ser innecesario cambiar nada) he pensado que me cuesta poco que el blog vuelva a ser Delphi Básico, de forma que no exista una relación directa entre el nombre de uno y otro, y podamos seguir ese esfuerzo iniciado en pro de la Comunidad, que a fin de cuenta somos nosotros mismos.

Es por eso que el blog volverá a llamarse Delphi Básico y el grupo Delphi Solidario seguirá con el mismo nombre.

Curiosamente, esta especie de proyecto que estaba en nuestra mente, iba a llevar nombres mas tradicionales, como Comunidad Hispana de Delphi, o Delphi Hispano, o similares. Y de repente, por los comentarios recibidos en facebook, uno se da cuenta de que el grupo encuentra que el nombre les gusta, que el calificativo “solidario” dice mas que el conservador termino de Hispano. Porque valoramos positivamente el compromiso y entendemos que ese espíritu está mas relacionado con lo que tradicionalmente ha defendido nuestra Comunidad.

Así que esa es un poco la idea, para que entendáis el motivo del cambio y de que el blog se vuelva a llamar Delphi Básico.

 

Barcelona y RadStudio XE2: Una cita que no te podías perder.

octubre 7, 2011 en 64bits, Delphi, Presentaciones, Seminario web, XE2

 Ayer leía con bastante interés una de las últimas entradas del blog de Neftalí, RAD Studio XE2 World Tour: Barcelona,  en donde Germán compartía con nosotros lo que fue el evento de Barcelona y recopilaba bastantes enlaces tanto a fotografías como a documentación. Por supuesto, os aconsejo la lectura del mismo, ya que nos da una buena idea de lo que ha sido y lo que ha englobado respecto a las novedades de la nueva versión. El evento, es decir la presentación de Rad Studio XE2 en Barcelona, como sabéis se enmarcaba dentro de una gira mundial que está haciendo Embarcadero y en la que esta dando a conocer la última versión de su producto estrella, y los principales evangelistas en estos casos acompañan a los partners locales en la celebración de estos eventos.  El partner español, Danysoft, organizó la escala de la gira en España el 27 y 29 de Septiembre, Barcelona y Madrid, dejando para unos días más tarde el evento de Lisboa.

En nuestro caso, este año, contábamos con uno de los evangelistas de Embarcadero para Europa, ya conocido por nuestra comunidad: Pawel Glowacki que había estado anteriormente en España con motivo de la presentación de alguna de las versiones anteriores del compilador  (creo recordar en la presentación de Delphi 2007  ). Pawel escribe en los blogs de Embarcadero y hemos podido leer o compartir algunas de sus entradas. En ocasiones le hemos citado, sin ir mas lejos en la Colección de recursos “on line” sobre D2010 (Pawel Glowacki) donde apuntábamos a la entrada de su blog Delphi 2010 Online Resources, muy interesante, que contenía muy buenos recursos para Delphi 2010. De hecho, el que viniera Pawel en esta ocasión pienso que no es casual, puesto que Embarcadero se ha tomado muy en serio la gira.

El enfoque de Germán en su blog es un poco diferente a como, en esta ocasión, yo he planteado las notas del evento. En realidad, mientras escribo estas lineas pienso más en compartir como se ha vivido, las sensaciones que me ha transmitido y la expectación que ha generado, complementando en la medida de lo posible, el artículo de mi amigo. De hecho, unas horas antes de subir a su servidor la entrada, me comentaba en unas lineas de correo el contenido de la misma: La idea era un poco coordinarnos y que ese contenido de ambos blogs, fuera del máximo interés, pero la lectura de su entrada, muy completa, me hizo pensar que podría darle un enfoque más de comunidad, marcando algunas ideas claves vistas en la presentación, puesto que él ya había cubierto casi todo lo que se podía mostrar respecto a los enlaces mas significativos.

Para empezar, decir que todo está cambiando. Creo que no sería exagerado decir que la barcaza que para muchos navegaba sin rumbo cierto, ¡que iba a hundirse de un momento a otro! jajaja, dejando en su naufragio un reguero de insensatos fanáticos de nuestro compilador, :-)  esa barcaza de la que habían saltado precipitadamente por miedo ahogarse, ahora parece mantenerse a flote, desafiando a quienes pronosticaron y escribieron la crónica de su muerte;  y no solo se mantiene a flote sino que empieza a enderezar su rumbo con claridad: La incorporación de Firemonkey como puerta hacia el trabajo en múltiples plataformas, ha descolocado a muchos, a propios y a extraños, que habían dado por hecho que iba a llegar de la mano de la VCL y la expectación no se ha hecho esperar. Ha sido una de las cartas clave para entender el por que existe mayor interés que en anteriores ocasiones.

¿Se podría decir que vamos a poder vivir una segunda edad de oro de nuestra herramienta de desarrollo, de nuestro querido Delphi? Es dificil de saber, ¿quién puede pronosticarlo? pero las cifras hablan, y en España, las peticiones de asistencia a la presentación de RadStudio XE2 ha desbordado cualquier pronostico, y obligó a Danysoft a repetir en (on line) las sesiones, para todos aquellos que no pudieron asistir por haber excedido el aforo previsto. Eso no había pasado en ninguno de los años anteriores y yo lo puedo decir no porque me lo hayan contado, sino porque lo he visto y lo he compartido desde las páginas de mi blog. Bueno. Vosotros ya lo sabéis. Muchos habéis seguido esas entradas que siempre son un poco anecdóticas.

Pero quizás, como contrapunto a la historia del evento, existe otra que transcurre en paralelo y que ciertamente es desconocida por muchos. :-)  Tiene que ver un poco con nuestra Comunidad y de alguna forma con la presentación. Tiene que ver con un grupo de facebook que se nutre cada día de un numero mayor de compañeros, y tiene que ver con la aceptación de una conciencia de Comunidad que ha llevado a muchos programadores hispanos a apoyarse y a reclamar el apoyo de Embarcadero. De hecho, no fue casual que pudiéramos conversar y discutir Germán y yo la noche anterior, acerca de los temas de nuestra Comunidad, de sus problemas e inquietudes. Ni fue casual, ni debería ser algo extraordinario, ya que lo realmente anormal era la situación heredada de una comunidad muy diseminada,  con poca relación entre los distintos grupos y propensa al aislamiento: muchas veces he pensado que había un lema escrito a fuego en muchos de los grupos hispanos, o estás conmigo o contra mi. Y quizás uno de los cambios que estamos padeciendo es precisamente el salir al exterior, con menos complejos, y el que existan un entramado mas extenso de relaciones. Y en eso, las redes sociales, la nueva concepción de la web social ha tenido bastante influencia.

RadStudio XE2, va a contar con una Comunidad hispana muy distinta de la que conocieron las versiones anteriores. Ejemplo de ello, y sin ir mas lejos, ha sido la ayuda recibida de Danysoft, clave en la preparación de estas entradas, facilitándonos -no ya solo a nosotros, sino a cualquier blogger que lo hubiera solicitado- la documentación del evento, las fotos, el tiempo que Pawel nos concedió (unos 40 minutos) y que nos permitió no solo conocer su opinión del producto sino acercarle algunas peticiones que pensábamos ayudarían a nuestra Comunidad. Todo esta cambiando poco a poco y existen muchos compañeros en la comunidad hispana que están apostando por esa transformación. De la misma forma, los partners y el propio Embarcadero, desde que éste tomo las riendas de nuestro producto, y mas concretamente a partir de Delphi 2010, apostaron por una política de acercamiento a la comunidad, bien facilitando el contacto de los partners con los compañeros que participábamos activamente, bien incrementando el numero de recursos en castellano.  Nadie puede negar que algo se ha avanzado.

En el grupo de facebook publicamos algunas fotos que muestran la sala en la que se vivió el evento y se puede ver lleno. Un salón con disposición en abanico, con sillas fijas que resultaba bastante acogedor aunque también por esa razón, limitado en cuanto a capacidad. Si hubieran habido mas plazas, con absoluta seguridad se hubieran llenado también a tenor de los comentarios que hemos podido compartir con Jose Luis Castaño, quien está al frente de la empresa española, partner de Embarcadero. Pero realmente nadie se esperaba tanta expectación.

En cualquier caso, lo indudable y evidente es que el evento, una vez que se fueron conociendo y concretando, en las semanas previas al inicio de la gira, las novedades del producto: la incorporación de la multiplataforma, los 64 bits, el desarrollo para mac OS X e iOS(iPad o iPhone) y lo que afectaba propiamente al desarrollo que ya existía, como 2D/3D, livebindings, datasnap y estilos, despertó una curiosidad tan grande que movió de los acomodados sillones a muchos compañeros que querían ver de cerca y como se dice en mi tierra, “palparlo”.

El evento, para aquellos que no pudieron asistir se celebró con bastante normalidad, aunque en este caso, siendo justos e intentando ser objetivos, hubo cierta mala previsión del horario, de los tiempos de las sesiones, y posiblemente, fuera esa una de las razones de que hubiera algún tema que se viera muy por encima y otros, más accesorios, prácticamente no se pudieran ver. Posiblemente, y es mi opinión, hubiera sido necesario planificar una jornada mas amplia y haber reservado para la tarde, las últimas sesiones.

Para mi, este problema fue lo único que lo deslució un poco, si es que se puede aplicar esa calificación a una jornada que se resolvió con un notable éxito. En fin… resultaba un poco chocante ver a uno de los técnicos de Danysoft en Barcelona, correr y saltar de diapositiva en diapositiva, con prisas, en un tema tan importante (al menos a mi sí me lo parece) como lo es el cambio en el compilador, de 32 a 64 bits  y la relación de problemas y puntos “negros” que se conocían, en lo que afecta a la migración de los desarrollos. Creo que hubiera sido difícil comprimir en menos tiempo y de hecho, al acabar recibió una merecida ovación del público que asistía.  :-)

Fue una jornada muy intensa, como bien dice Germán.

Es mas, si a la salida del mismo o pasados algunos días alguien me pregunta de qué trataba aquella jornada, hubiera dicho sin pestañear: -Firemonkey. Se ha visto firemonkey, sin duda.

A lo cual nuestro interlocutor sin duda exclamaría:

-Pero se vería algo mas… ¡no es posible!

-No… firemonkey… y … y hojas de estilo.

-¿Solo…?

-No… firemonkey… y … y hojas de estilo y los nuevos conectores a datos.

Realmente creo que eso es al final lo que mas ha calado del evento. La capacidades gráficas (2D/3D) de la nueva plataforma   FireMonkey (añadido al el hecho de que ha abierto una puerta a la multi plataforma representada en el acceso al mundo de Apple y los dispositivos móviles). En definitiva, pienso que nuestra Comunidad empieza ahora a analizar de que forma puede integrar todas esas nuevas capacidades gráficas en los propios modelos de negocio.

Frente a otras alternativas el posicionamiento de Firemonkey es claramente estrategico:

 

Como nos explicaron en la diapositiva superior, tenemos en nuestras manos una plataforma que no solo saca partido en lo que afecta a crear aplicaciones con interfaces ricos y altamente atractivos, algo demandado hoy por hoy por nuestros usuarios, con posibilidad de uso de las capacidades 2D y 3D en las aplicaciones especializadas, sino que ademas se potencia con un alto rendimiento por  la explotación de la GPU si el entorno lo permite. Y eso suena muy bien.

Si además, te muestran -Pawel lo hizo durante la 2ª sesión, previa al descanso- que detrás de todo esto, detrás de las grandes palabras que parecen esconder conceptos intrincados y complejos- está la sencillez del uso de los componentes, y ves como con dos clicks de ratón, puedes crear un escenario complejo y manipularlo en tiempo de diseño, añadiendo efectos, transiciones, movimientos… además de sonarnos bien nos, puede hacer sonreír. Yo mismo, pensaba mientras veía a Pawel manipular la imagen 3Ds, (logo de Firemonkey), que aquella imagen bien pudiera convertirse en un catalogo de empresa, un expositor de artículos o cualquier otra cosa imaginable.

VCL versus FMX

De la sesión de Firemonkey, cabría reseñar la pregunta que quedaba un poco en el aire: ¿Qué iba a pasar con la VCL?. Era algo que caía por su peso… por qué… claro, ambas bibliotecas se presentaban como escenarios que no eran compatibles y la mayoría veía con recelo la posibilidad de que la VCL fuera abandonada, con todo lo que esto puede suponer. Así que este punto fue algo en lo que se insistió claramente.  Según las palabras de Pawel, Embarcadero tenía la pretensión de mantener tanto la VCL como FMX, y dejaba a los desarrolladores que fueran ellos quien eligieran el modelo a seguir. Seguir con la VCL, en el modelo de Windows tanto para 32 bits como 64. O abrirse al nuevo escenario que presenta el modelo FMX, con multiplataforma, con 2D/3D, con conectores avanzados para la tecnología móvil. Posiblemente esto fuera lo idea en aquellos proyectos nuevos que se pudieran emprender.

Por desgracia hay un pero en todo esto… algo que fue comentado también en la sesión y que estaba en la mente de todos. La pésima documentación (¡lo de pésima no lo dijeron ellos, es lo que todos pensaban!), inexistente, que hace pensar a muchos la dificultad que puede existir para explotar al 200% las nuevas capacidades gráficas. También en ese punto, a la pregunta de algún compañero que asistía al evento de qué iba a hacer Embarcadero en este tema, se respondía en el sentido de la conciencia real que existe del problema en la empresa, y  de que ya se estaba trabajando en ello. Y que además, iban a ser frecuentes las mejoras en ese punto. De hecho, conocéis que en estos días anteriores ha sido publicado el primer update de RadStudio XE2, resolviendo algunos errores, temas de licencia que no habían sido resueltos correctamente e incluso, incrementos en el rendimiento gráfico.

¿Y el resto de sesiones?

El siguiente paso, unos 25 minutos fuera del horario previsto, fue la sesión dedicada a los estilos, aplicables tanto a la VCL como a FMX. A mi particularmente fue algo que me gusto especialmente, ya que va a proporciones a nuestros desarrollos una notable mejora de nuestro interfaz con un coste mínimo. La posibilidad de tener estilos predefinidos, o que el programador pueda crearse los propios, era algo que se había demandado desde siempre.

La imagen que nos mostraba German en su entrada era bastante explicita de esto:

 

Y para conseguir esto, para darle la oportunidad a nuestro usuario, que a fin de cuentas es quien va a usar nuestra aplicación y quien debería decidir cómo quiere verla, bastaba cuatro lineas de código: algún componente sobre el que mostrar los estilos disponibles y la rutina de selección.

Estaréis de acuerdo en que algo así, ha sido siempre añorado, sin tener que reescribir la aplicación en cada proyecto.

No obstante, creo que todos nos quedamos bastante convencidos de la forma en que esto se ha integrado en el entorno de desarrollo. Ese punto creo que se debe destacar también. Durante esta sesión se nos mostró como añadir nuevas “capas” en el estilo del componente y como la biblioteca FMX, explotaba el rendimiento en el dibujado de los controles, frente al sistema que utiliza la VCL, con dependencias de Windows.

Este es el aspecto del editor de estilos:

La impresión que yo al menos recibí, de este tema es que se había simplificado el diseño de controles, que nos permitirá entrar en una dinámica que hasta ahora no conocíamos.

Respecto al resto de sesiones, tras un descanso en el que los asistentes (yo incluido) aprovecharon para conversar de forma distendida en la sala anexa, y ya con el tiempo en la zona roja de la agenda del día, se vieron los 64 bits (vía breve y concisa) y la nueva conexión a datos, soportada tanto por la VCL como por Firemonkey, en la que gracias a Dios, Luis Alfonso Rey, de Danysoft,  sí se pudo detener una cantidad razonable de tiemp0. Según mis anotaciones  desde las 13:28 hasta las 13:42, dato anecdótico que tengo apuntado y que seguramente tomé por alguna razón. Posteriormente se amplió con varias demos que mostraban en tiempo de ejecución como podíamos enlazar tanto a objetos como a  fuentes de datos, siguiendo el sistema mas tradicional. Incluso llegamos a ver interactuando un cubo 3D en el que se acoplaba una rejilla de datos que mantenía su capacidad de edición mientras el cubo podía ser movido en relación de cualquiera de los 3 ejes.

Es decir que lo que se ponía a disposición nuestra es un concepto mas abierto y abstracto de conexión, mas ambicioso, cuya finalidad era precisamente que cualquier fuente de datos pudiera ser enlazada de una forma sencilla. La gracia del asunto, en mi opinión, está en que podemos entrar de lleno en un enfoque mas orientado a objetos de una forma natural y eso habilita nuevas opciones.

En una de las diapositivas incluidas en los pdf que Danysoft ha publicado en su web, se nos muestra el editor de expresiones en tiempo de diseño, que nos permite enlazar la fuente de datos con el origen (sea el que sea).

 Cada una de las lineas que muestra la rejilla central se corresponde con uno de esos enlaces (vivos) y dependiendo de que tipo de relación sea creada necesitara un motor u otro (TBindScopeDB, TBindScope o TBindingsList)

¿Y más allá de eso…?

Bueno, mas allá de eso se pudo ver durante la jornada algunas cosas que ya habíamos visto en varios vídeos, como ejecutar nuestra aplicación en un mac. También se vieron algunas pinceladas de radphp y de los nuevos conectores , algo de datasnap y de la nube, y practicamente nada de appwave, que fue si no recuerdo mal el último tema que se vió.

Por eso os decía que al final me quedé un poco con la idea que la presentación de las novedades, se ceñia a lo que parecían los temas mas vistosos (aunque no por eso menos importantes): Firemonkey, Estilos y Livebindings.

Imagino que esto puede dar pie a que en los próximos meses se puedan celebrar eventos on line específicos, lo cual no parece malo.

Hay algunas noticias que quedan en el aire y que también en los sucesivos meses van a ir despejándose. Me parece muy importante, y me ha encantado, que Embarcadero haya propuesto a Francisco Charte, autor de numerosos libros desde las primeras versiones, desde Delphi 2 hasta Delphi 2006 escribir sobre RadStudio XE2.

Por otro lado, respecto a Marco Cantú, aunque ya era conocido porque se había publicado en su blog, Danysofr resaltó su próximo libro, del que únicamente sabemos que ahondará en la plataforma FireMonkey y RadStudio XE2.

Ambas noticias pienso que se han recibido con mucha satisfacción.

Y sobre nuestra comunidad, seguimos trabajando… Como os decía en una entrada anterior, el número de compañeros crece día a día (en los próximos días sobrepasaremos el centenar) . En esta semana que ha transcurrido, se presentaron “voluntarios” a echarme una mano en la administración del grupo:  German Estevez y Eliseo Gonzalez.  :-D   Y no dudo que a medida que vayan creciendo encuentre el apoyo de otros compañeros.

Nada mas. Un notable alto para Danysoft por la organización del evento, que en mi opinión ha cumplido con creces las expectativas. Y me despido esperando que esta visión personal de la presentación de RadStudio os haya gustado.

Aviso sobre el grupo de Facebook “Delphi Solidario”

septiembre 6, 2011 en Advertencia, Delphi, Entrada Diario, Facebook, Noticias, Recordatorio

Hola a todos:

Comentaros que finalmente tomé la decisión de volver a crear el grupo de Facebook, “Delphi Solidario” de acuerdo a la nueva estructura de grupos de esta red social  , (decisión que había demorado durante meses), y para ello, se ha hecho necesario dar de baja todas los miembros que formaban parte del antiguo grupo. Si observáis que ha desaparecido vuestra membresía ya conoceis la razón. ¡No vayáis a pensar que es por otro motivo!

Para poder eliminar un grupo antiguo hay que eliminar todos los miembros, momento en el que Facebook lo elimina del directorio de grupos. Podría haber simultaneado durante un tiempo ambos grupos e ir traspasando gradualmente a los miembros pero creo que no valía la pena, ya que no eramos tantos (aproximadamente unos 50 compañeros).

A los miembros que he podido dar de alta directamente, porque ya formaban parte del circulo de amigos, los he incluido (espero no haber olvidado a ninguno). Os pido, al resto, que os vayáis uniendo al grupo.

Esta es la dirección del grupo de facebook “Delphi Solidario”:




http://www.facebook.com/groups/delphisolidario/

(recordad que también existe el enlace en la barra lateral del blog)

Respecto al motivo del cambio al nuevo sistema de grupos, es básicamente por el sistema de publicación, que tiene mejoras respecto al antiguo sistema de grupos. Al final, eras mas las ventajas que los inconvenientes y creo que valía la pena.

Sed libres de participar en el grupo, añadiendo los enlaces y publicaciones que creáis conveniente resaltar. Es un grupo abierto y libre (con el respeto a unas mínimas normas de convivencia que todo el mundo ya conoce)

Un saludo y gracias por participar,

Salvador

 

 

 

 

¡Felicidades Septiembre!

septiembre 1, 2011 en 64bits, Ado Express & DataSnap, Delphi, Delphi Prism, Enlace interesante, Entrada Diario, Eventos, FireMonkey, Nos deja la semana..., Noticias, Noticias Delphi, XE2

¿Qué tal estais?  :-)

Espero y deseo que bien.

Hoy retomamos oficialmente, tras estas semanas de descanso,  la actividad de la página, eso sí, :-)  ya con las pilas cargadas y llenos de energia. Y digo oficialmente, porque durante los días anteriores sí que había estado publicando comentarios y remarcando algunos enlaces interesantes en Facebook y Twitter (a partir de ahora también en Google Plus). Muchos de vosotros los habréis leído. La agilidad de las redes sociales, la inmediatez de cuanto se expone, hace un marco inmejorable no ya para transmitir las novedades o redescubrir la información, sino para capturar el pulso de la realidad.

¡Cualquiera diría que no iba a llegar el mes de Septiembre!

Me felicitaba a mi mismo por estar disfrutándolo,  por haber sobrevivido -como mero ciudadano de a pié-, a los vaivenes y a las continuas convulsiones económicas que vivimos y que nos afectan a todos los niveles. ¡Sujetense! -grita alguién a lo lejos- ¡qué esto se cae!… Desgraciadamente, nos despertamos día a día con noticias desalentadoras de la crisis económica y cada vez, el margen para la esperanza es mas pequeño: Dia a día nos hacemos conscientes de la destrucción del tejido empresarial y de la quiebra del sistema financiero, del paro, de la crispación social por los recortes que tiene que acometer el sistema, etc.   Es mas, aun siendo este blog un punto de encuentro de compañeros de una comunidad de programadores, resulta dificil abstraerse del problema económico y social latente y hacer como si no existiera, sin que asome de tapadillo entre las lineas del texto que compartimos. Es por ello, el título que abre este post, que se escribe y se comparte en el contexto del lanzamiento de un producto (Rad Studio XE2) que viene al mundo, -en mi opinión-, en el peor de los escenarios deseables: a un mundo bastante decadente, sumido en una crisis produnda, económica, social y ética.

Posiblemente, -y sigo expresando mi opinión-, sea el contexto económico y social y no la calidad del producto en este caso, quien desluzca esas  novedades que van a ir conociendose de la nueva release o versión. Algunos de los detalles que se conocen son muy prometedores y creo que han generado inquietud o curiosidad (Firemonkey, las plantillas de estilos y los esperados 64 bits). A mi particularmente me gusta lo que he podido conocer de las plantillas de estilo, que pienso abrirá las puertas a una estetica mas acorde a lo que nuestros usuarios se han ido acostumbrando.

 No. No conozco todavía la nueva versión. Lo que se de ella es lo que se ha podido ver en los videos de las presentaciones que van siendo publicados. En facebook ya comentabamos que durante Agosto y Septiembre, se iban a ir sucediendo las 66 presentaciones de RadStudio XE2, que incluían Nueva Zelanda, Argentina, Australia, Austria, Belgica, Brasil, Canada, Colombia, Republica Checa, Dinamarca, Finlandia, Francia, Alemania, Hungria, India, Indonesia, Italia, Japón, Korea, Mexico, Holanda, Noruega, Polonia, Russia, Eslovaquia, España, Suecia, Taiwan, UK y USA. Esta información estaba enlazada desde http://www.embarcadero.com/world-tour

Así que día a día, progresivamente, van a llegarnos durante el mes de Septiembre mas detalles contrastables y fiables, tanto de las cosas buenas como de las que no lo sean.

Para empezar a ver el tema, creo que podríamos acercarnos al video que lanzó Danysoft. Un video corto, de unos 10 minutos, pero que da una idea general bastante buena del producto. Este video se preparó como antesala de las presentaciones que se celebrarán en Barcelona y Madrid a finales de Septiembre. Podéis consultar las fechas en la cabecera del blog.   

Quizás, lo que parece más llamativo de este lanzamiento es la plataforma visual de FireMonkey, que va a dotar a nuestra herramienta de unas prestaciones graficas mas altas, para desarrollos donde se necesiten este tipo de capacidades, vinculadas al 2D/3D. Hasta ahora era una de las asignaturas pendientes que habían hecho que se dependieran de otros motores gráficos.

Ummmmmmmmm…. imagino que quereis ver a FireMonkey en acción. Existen algunos videos y entradas que han sido publicados en las semanas anteriores y que he ido resaltando en las redes sociales.

Por ejemplo. Podeis ver los enlace de Andreano Lanusse, de fecha 3 y 5 de Agosto:

http://www.andreanolanusse.com/en/a-little-bit-about-firemonkey-and-delphi-xe2/

http://www.andreanolanusse.com/en/video-delphi-xe2-and-firemonkey-app-on-windows-mac-and-ios/

 
 

 Seguimos…

Mas videos donde se muestrans las capacidades de FireMonkey nos llega desde Marco Cantú. Con fecha 24 de Agosto nos dejaba un video en you tube, que se enlazaba al post

http://blog.marcocantu.com/blog/firemonkey_betablog_video.html

 

Y finalmente, rebuscando en los enlaces de Danysoft he encontrado 3 detalles adicionales:

http://www.danysoft.com/productos/software/anticipandonos-a-rad-studio-xe2.html

http://www.danysoft.com/productos/software/firemonkey.html

y http://www.danysoft.com/productos/software/las-nuevas-fronteras-de-la-programacion.html

Es precisamente, este último, que por su brevedad pasa inadvertido pero que contiene un pdf que amplia la información sobre las capacidades gráficas de las nueva versión y anticipa el tema de las novedades en DataSnap.

http://www.danysoft.com/free/xe2-articulo-01.pdf

Habrá que estar atento a los articulos sucesivos que vayan publicandose, ya que toda esta información es necesaria de cara a si en un momento posterior decidimos descargar la trial para conocer de primera mano los cambios, poder apreciar los detalles que de otra forma se nos podrían escapar.

Respecto a nuestra Comunidad sale poco a poco del letargo.

Abríamos boca con las publicaciones de Germán Estevez, en el mes de Agosto:

Germán nos dejó un artículo resumen de lo vivido en esas primeras semanas de Agosto (11/08):

http://neftali.clubdelphi.com/?p=1680

Dadle un vistazo. Eran los primeros coletazos del tour de Embarcadero y recogía las anotaciones de David Intersimone, así como uno de los primeros videos sobre Rad Studio XE2. Destacaba en ese post un programa que le habia parecido interesante y que compartía con nosotros:  IOGraph.

Al Gonzalez, otro gran amigo, compartía un truco (16/08) que permitía anclar una ventana e impedir que fuera movida por el usuario.

Inamovible – http://rescatandoadelphi.blogspot.com/2011/08/inamovible.html 

Y finalmente, tambíen compartía con vosotros desde las redes sociales, las aportaciones de Daniel Luyo, en su blog. El enlace que recoge las entradas de Agosto lo tenéis en el enlace siguiente:

http://danielluyo.wordpress.com/2011/08/

Existen un total de 5 entradas. Me parecierón muy interesantes, ya que comparte con nosotros una visión mas cercana a nuestras inquietudes.

Yya finalizando el mes, en estos días pasados, ha iniciado una serie de articulos sobre las novedades de XE2, Rodrigo, muy interesantes y que os aconsejo seguir: 

http://theroadtodelphi.wordpress.com/2011/09/01/exploring-delphi-xe2-vcl-styles-part-i/

Precisamente, abordan el tema de los estilos, que quizás ha sido de los temas que menos se ha hablado y que en mi opinión puede tener un impacto grande sobre nuestros desarrollos, por cuanto va a mejorar notablemente el acabado de los interfaces. Y eso, como dice mi hijo: ¡Mola un montón!  jajajaja  :-)

Siento si queda alguien en el tintero y no hago referencia al mismo. Para escribir la entrada he tomado como referencia los enlaces destacados en mi facebook y posiblemente queden detalles que hayan pasado inadvertidos. Cuento con vuestra ayuda para destacar lo que falte.

En lo que respecta a las fronteras de nuestra C0munidad, me parecieron especialmente interesantes los articulos enlazados que he podido leer en días pasados de Allen Jolub:

http://drdobbs.com/java/231600390?pgno=1

En estas entradas se aborda algunas inquietudes sobre los problemas de la gestión de datos de algunos servicios web de Google. En concreto el habla de las Agendas pero lo hace extensivo a otros servicios, ya que se sirve de este primero para ver los problemas en el tratamiento de datos en los formatos de intercambio. Os aconsejo que lo leáis porque no tiene desperdicio.

El mes de Agosto se despide dejandonos una imagen muy deteriorada de Steve Jobs

Steve Jobs
Apple Shaken to Core
CEO Resigns

http://www.tmz.com/2011/08/24/steve-jobs-apple-ceo-resigns-retires-computers-ipad-iphone-health-issues-pancreatic-cancer/?fb_ref=.TliojyexDXs.like&fb_source=profile_oneline

Cualquier comentario resulta un tanto superfluo. La verdad es que sentí bastante tristeza al verlo tan deteriorado. Pero eso es ley de vida.

Iniciamos Septiembre. Bienvenido y felicidades por seguir viviendo.

 

 

Otras mandangas…

julio 24, 2011 en Código, Consejo, Delphi, Entrada Diario, Mis cosas, Taller práctico

 Dicen diversos diccionarios acreditados que una mandanga, en sentido familiar, es algo así como una excusa, como en “no me vengas con mandangas y ponte a trabajar…”. También puede ser un cuento, chisme o tontería, como “¡oye! ¡siempre sales con mandangas!. Incluso, alguna vez la escuché en un sentido figurado, de persona con ganas de pleito y barullo, como en “¡Mira que te gusta la mandanga!“… :-) Y en el caso de la entrada de mi blog, pienso que anda mas cerca de esa segunda acepción, propia de quien se aburre y sale con relicarios.  :-)

En esta ocasión, he rebuscado en el baul y he subido al servidor un pequeño ejemplo que, aunque no tenga valor en si mismo, por aquello de que fuera exquisito su código,  mezclaba un tanto de todo, y me daba algo de tiempo mientras reviso y buceo en otros temas. Los días van pasando demasiado deprisa y las vacaciones hacen que se huela el descanso y el ocio, lo cual va un poco reñido con el mantenimiento del blog. =:-O 

Además, siendo justos, dado que estamos aqui como quien dice entre amigos, diría verdad si reconociera que me fue util. Pero bueno… mejor que deciros que es o que no es, lo veais vosotros mismos.

Un segundo que prepare unas escenas. Upsssss
 

 ¿Veis…? Al ejecutar el fichero Impresion.exe (el cual queda residente y visible en la barra del sistema) me permitía ir procesando el contenido de unos ficheros de texto plano, de forma que, a medida que iban siendo creados, se leyera su contenido y se dispusiese en una lista de tareas.

Los ficheros siempre tenían la misma extensión. Para nuestro ejemplo los carácteres “sjc”.

En el video, se puede ver como copio al portapapeles uno de los ficheros (concretamente el primero de ellos lanzará la ventana del explorador con la dirección del blog) y lo pego en la carpeta donde reside el ejecutable. Y como resultado sucederá lo comentado. En la vida real, no pegaba ni cortaba ningun fichero sino que lo generaba desde mi aplicación principal, permitiendo delegar esa tarea a esa especie de “servicio”.

Estas eran las lineas que generaban el fichero, cuyo nombre era siempre aleatorio: 

procedure TDemoBlog.VerWebExecute(Sender: TObject);
var 
  Parametros, FFile: String;
begin 
 inherited;

  Parametros:= '11111#Probando un ventana explorer'+
               '#3#1#http://www.sjover.com/delphi#';
  FFile:= Utilidades.PalabraAleatoria(10) +'.sjc';
  Utilidades.SaveFile(FFile, parametros);
...

Y cada fichero generaba una linea de tarea que se mostraba en la ventana de la aplicación. En la imagen inferior podeis ver la ventana en la que existe un sencillo TListbox para mostrarlas.

 Las dos funciones PalabraAleatoria( ) y SaveFile(  ), pueden ser encontradas facilmente en internet con distintas variaciones.  

procedure SaveFile(const FileName: TFileName;
                   const content: string);
begin 
  with TFileStream.Create(FileName, fmCreate) do 
    try 
      Write(Pointer(content)^, Length(content));
    finally 
      Free;
    end;
end;
function PalabraAleatoria(Longitud: integer): string;
const
  Letras = '01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var
 n : integer;
begin
  Result:='';
  for n:=1 to Longitud do
    Result:=Result+Letras[1+Random(Length(Letras))];
end;

 Si tenéis curiosidad por ojear el codigo fuente lo podeis descargar desde el enlace siguiente: 

Descargar fuentes de la entrada

Dentro de las fuentes, leed por favor el archivo leeme.txt donde os comento unas anotaciones necesarias.

Básicamente, existen dos clases: la clase que representa a la tarea a procesar (TTrabajo) y la clase que representa a la cola de tareas (TColaImpresion), con características similares a cualquier abstacción de tipo Cola. Mas abajo podeis ver un extracto del interfaz. La clase TColaImpresion, se apoya en una instancia de la clase TStrings, o lista de cadenas, que suele ser un recurso bastante comun y recurrido, para almacenar las tareas hasta que sean ejecutadas. Y finalmente, dos piezas importantes en el esquema son por un lado el componente Notificador (TShellNotification), que nos ayuda a descubrir que ha sido generado un nuevo fichero, y por otro una instancia descendiente de TTherad que va consumiendo, en un hilo secundario, las tareas de la cola, siguiendo el orden de antiguedad. 

  TColaImpresion = class(TComponent)
      ...
  protected 
    procedure DoAddTaskEvent(ATrabajo: TTrabajo); virtual;
    procedure DoDeleteTaskEvent(ATrabajo: TTrabajo); virtual;
    procedure DoHacerTaskEvent(Sender: TObject; ATrabajo: TTrabajo;
    AModulo, AFuncion: Integer); virtual;
    function DoLinkFileCreateEvent(Sender: TObject;
     Path: String): TShNotificationEvent; virtual;
    procedure Delete(Index: Integer);
  public     { Public declarations } 
    constructor Create(AOwner: TComponent); override;
    Destructor Destroy; override;
    procedure Add(const ATextoAMostrar: String; ATrabajo: TTrabajo);
    function Count: Integer;
    function ExtraeItem: TTrabajo;
    procedure VaciarCola;
    procedure UpdateCola;
    procedure DoHacer;
    procedure LeeFicheroImpresion(const AFileName: String);
    property Strings[Index: Integer]: string read Get; default;
    property Path: String read FPath write SetPath;
    property Active: Boolean read FActive write SetActive;
    property OnAddTaskEvent: TNotifyTaskEvent read FOnAddTaskEvent write SetOnAddTaskEvent;
    property OnDeleteTaskEvent: TNotifyTaskEvent read FOnDeleteTaskEvent write SetOnDeleteTaskEvent;
    property OnDoHacerEvent: TNotifyDoHacerEvent read FOnDoHacerEvent write SetOnDoHacerEvent;
  end;

La pregunta que me queda responder es quizás el por qué.   :-)

No… no es que estuviera aburrido… :-)    Habitualmente uno escribe código porque existen nuevas necesidades o requerimientos que satisfacer, en un marco de trabajo mutable y caprichoso. Es lo mas normal. Sin embargo, en ocasiones, esas circunstancias pueden ser simplemente, que estemos encarando la actualización del entorno de desarrollo, y exista -a nuestro pesar- la necesidad de replantearnos el uso en el proyecto de un determinado paquete de componentes por otro que pueda ofrecer mejoras -o sean libres, o sea requerimiento del cliente, etc…-. Así, de la noche a la mañana y sin quererlo ni beberlo, nos veamos obligados a sustituir todo el codigo que afecta a los antiguos componentes por el codigo nuevo y con la necesidad de que el sistema siga funcionando, el nuevo entorno permita compilar sin los paquetes sustituidos y ademas, uno tenga el tiempo de hacer eso sin tener que abandonar el mundo y encerrarse en una cueva… Y eso es otra historia. Y además, por experiencia, amarga…  :-)    

Realmente, estas líneas de codigo las escribí en el contexto de plantearme el cambio del sistema de impresión, de la suit de componentes que utilizaba. El proyecto contenía tropecientos mil informes distintos a cada cual mas intrincado y los generadores de informes, pese a ser muy similares unos de otros, son el peor sitio para perderse cuando uno tiene prisa. 

Así que estas lineas fueron simplemente una estrategia para dilatar ese problema en el tiempo, de forma que fuera llevadero y asumible. Las unidades que iba a extraer del proyecto fueron aisladas dentro del modulo de impresión, de forma que el proyecto compilaba sin las referencias a los paquetes que dejaba, ya en el marco del entorno actualizado. Seguia teniendo el problema de la migración, porque eso no me lo resolvía, pero sí podía compilar e iniciar la sustitución progresiva de las misma. Por otro lado, tampoco era tan mala idea. He visto otras aplicaciones trabajar así. El servidor de fax de la empresa tiene un sistema similar: Habilita una carpeta compartida al alcance de todos los clientes de fax del sistema. y para enviar un fax, son creados simultaneamente un documento de texto que parametriza el envío y otro documento que representan los datos a enviar. Y poco mas. El servidor de fax se limita a monitorizar la carpeta y va procesando los ficheros anotando el exito o fallo de la operación de envío.

En este caso simplemente habia reservado una carpeta local para depositar los ficheros que representaban cada informe. Seguro que se os ocurren algunos detalles más (que un fichero de texto plano se puede compartir, que la aplicación se comparte con cualquier otra aplicación que sea capaz de escribir en un fichero de texto, y que además, se centraliza el uso de los recursos de impresión, siendo susceptible de monitorizar el consumo del mismo, etc, etc…).

Nada mas por hoy. Espero que estas lineas os puedan ser de alguna utilidad.  

 

 

La web de JM

julio 4, 2011 en Código, Componentes, Delphi, Enlace interesante, Entrada Diario, Nos deja la semana...

Quisiera compartir con vosotros lo que me parece una buena noticia para nuestra comunidad y se que algunos compañeros se van a alegrar. Y es que, tras cruzar unos correos con mi amigo Jose Manuel Navarro, me ha permitido reactivar su blog dentro de mi servidor, de forma que pueda ser accesible de nuevo.

:-)   

Así que aprovecho estas lineas para darle las gracias a Jose Manuel. Ya he comentado anteriormente, en las paginas de mi blog, que es un gran amigo, que conozco desde hace ya bastantes años.  

Hay muchos compañeros que seguían al dia de hoy solicitandole código existente en su blog (yo he recibido recientemente uno de los correos que fue el que realmente me alertó de esa posibilidad de alojar sus paginas), y a mi particularmente, me parecía que, dada la calidad de sus artículos, merecia ser rescatado del silencio, aunque realmente no se haga ésto para darle continuidad.  También quisiera destacar que antes de mi, fue Jose Luis en el rinconcito, quien alojó una gran parte de los mismos. Yo he preferido mantener íntegra la apariencia de su blog, de forma que resulta hasta curioso porque para muchos va a resultar como ver una fotografia congelada en el tiempo, alla por el año 2006.

Espero que os gusta la iniciativa y que me vayais comentando -o directamente a Jose- si existe algun problema con alguno de los enlaces.

La web de JM 

Para el código, Jose Manuel, tambien ha habilitado un repositorio en el que se han añadido tanto código como artículos en https://github.com/jmnavarro, y que puede servir en un futuro para alojar mas contenido propio, sea o no de nuestra herramienta o comunidad. Seguro que, de cualquier forma, será tan interesante su lectura como lo fue la de los articulos que escribió para Delphi y C++ Builder.

No quisiera despedir la entrada sin comentar que lamentablemente, toda la parte que hace referencia a sus escritos vinculados con Bolivia, que reflejan su humanidad y su solidaridad, finalmente no pude incluirlos, dada su extensión y la cantidad de referencias que habían de rehabilitarse, en una estructura web clásica como lo era su blog. Lo digo porque muchos de los que visitaron su pagina posiblemente se pregunten donde están y realmente me apenó verme en la tesitura de excluirlos.

Nada mas, me despido deseando que los disfruteis de nuevo.