Mi método doble valor y expresiones con LiveBindigns

enero 20, 2012 en Artículos, Delphi, Entrada Diario, LiveBindings, Noticias, Noticias Delphi, Ofertas, XE2

Durante los próximos meses, vamos a ser muchos los compañeros que tomemos contacto con áreas nuevas de nuestro entorno de desarrollo, en esa fase de acercamiento a RadStudio XE2, como pueda ser LiveBindigns, los estilos, las capacidades gráficas 2D/3D. Y es que tenemos por delante, la difícil tarea de asimilar todas estas novedades y comprender de que forma se pueden acoplar a nuestra programación diaria, o del día a día.  Y por lo menos a mí, no me queda duda de que va a ser un proceso largo y evidentemente no trivial. Esa realidad, difícilmente se puede negar o esconder. De hecho, vamos a afrontarla a medida que requiramos funcionalidades más avanzadas y confrontemos la plataforma con las necesidades reales de los proyectos. Es entonces cuando mas echaremos en falta una buena documentación y nos veremos en la necesidad de salir a la red en búsqueda de respuestas. A diferencia de etapas anteriores,  contamos con la dificultad añadida que es la ausencia de documentación o en su defecto, la deficiente calidad de la misma. Y su juventud, que hace dificilmente comparable nuestra VCL con FireMonkey, y que se manifiesta en que todavía no exista ese banco de respuestas que nos permite contrastar si la dificultad ya ha sido enfrentada por otros compañeros.  Esa es la parte mas negativa y creo que ser realista es distinto de ser agorero, actitud en la que muchos van a caer, en ese discurso fácil y destructivo.

Resaltemos también las cosas buenas: En lo positivo, está el hecho reconocido y valorado por muchos compañeros, entre ellos yo, de que Embarcadero conoce esto, es consciente de ello, -el primer paso para solucionarlo- y está haciendo un verdadero esfuerzo por dotar a la nueva plataforma de actualizaciones, que corrijan los errores que van siendo detectados y por supuesto, de nuevos ejemplos que puedan ayudar mitigando o aliviando la falta de documentación.

Estos días anteriores hemos conocido la disponibilidad de la cuarta actualización de RadStudio XE2. ¡La cuarta…! Es una prueba evidente de esa voluntad de hacer las cosas bien, que argumentaba en lineas anteriores. Nosotros siempre preferimos ver el vaso medio lleno antes que medio vacío, por lo que, fuera de la incomoda tarea de las instalaciones y la pereza de hacerlas, prevalece la necesidad de que sean corregidos y mejorados cuantos detalles mejor.

Release Notes for XE2 Update 4

Así que leed con atención las indicaciones de instalación, que son similares a las que pudimos tener en updates anteriores.

Comentaba, siguiendo un poco lo que decía, que van siendo cada vez mas frecuentes las preguntas acerca de estas novedades, pudiendo contar con alguna que otra en el foro de Delphi Solidario.

Hoy por ejemplo, se ha dejado una pregunta en el aire sobre LiveBindings y el componente TListBox, en donde se compartía un problema al llenar la lista interna TStrings que mantiene el componente, para mostrar los distintos items de selección. La persona que hacía la pregunta mostraba que tan solo había conseguido recuperar 200 registros de una tabla que almacenaba una cantidad mayor. Y realmente creo que su problema era no saber si estaba haciendo algo no correcto o era una limitación, cosa improbable aunque difícil de adivinar si no cuentas con una buena documentación o accedes a las fuentes y ves que está sucediendo realmente. Así que tenemos también nosotros, todos los que participamos en la Comunidad, la tarea de aportar toda nuestra ayuda y os invito a volcarnos en nuestros foros y participar de ellos. No me cabe la menor duda que en unos días se resolverá ese problema, ese y los sucesivos, que van a ir apareciendo desde distintos puntos de nuestra Comunidad.

Posiblemente en unos meses también contemos ya con la publicación de los libros que están ahora escribiéndose, el de Marco Cantú (en inglés) o el de Francisco Charte (en español). O se haya añadido mas detalle a la documentación actual, fruto de un nuevo Update. Tengo confianza de que sea como sea, vamos a seguir adelante, mas si prevalece el espíritu que ha marcado siempre a nuestra Comunidad hispana.

Yo, por mi parte, -ya me conocéis- también intento poner mi granito de arena, con independencia de que no siempre podamos resolver los problemas. Siempre acaba uno aprendiendo algo en ese proceso de ayuda y eso es lo verdaderamente importante.

Hace algo mas de una semana compartía con un compañero de ecuador varios correos y me pedía algún enlace al tema de livebindings y el componente TDBLookupCombo. Ya sabéis que la nueva plataforma FireMonkey nos ha dotado de un nuevo sistema de enlace a datos, livebindings, alternativo en la VCL al tradicional uso del [control-datasource-dataset], que ya conocemos. Y mientras todavía nos es factible el uso de ambos sistemas desde la VCL, en los desarrollos ligados a firemonkey solo tenemos disponibles los controles que accedan a datos a través de la nueva tecnología. Quiere decir que ya no existen ni el TDBEdit, ni el TDBLookCombo, etc. y nos valemos de cualquier componente que pueda ser compatible o que acepte el enlace a datos. Y quien dice cualquier, dice eso precisamente…  :-)

 Creo que no somos conscientes de la increíble mejora a medio/largo plazo que eso puede suponer. Es un tema de mayor calado que nos puede ayudar en la búsqueda de mejores perspectiva de la Orientación a Objetos.

De mis pesquisas sobre el tema que se me planteaba, pude contrastar algunos detalles que posiblemente podamos compartir mas adelante con algún ejemplo. El hecho es de que el componente TComboBox no se adapta correctamente a lo que podemos demandar de un TDBLookupCombo. No porque no sea capaz de desplegar una lista que lo es, sino porque precisamente le falta lo que le hace distinto: tener una fuente de datos que provea la clave primaria o key value asociada y no el item selector. Esa es la clave del asunto y que dificultaba resolver el problema. El usuario visualiza un item de una lista de alternativas y de ese proceso de selección, lo que guardamos es una clave, cumpliendo las normas habituales de normalización de tablas, de las cuales huelga comentarios.

Os muestro una imagen que compartía con él, en ese intercambio de correo:

Pruebas sobre campos lookup

Había preparado un formulario en el que existían 3 tablas muy básicas. Una con una lista de personas, otra con una lista de grupos y una tercera que se alimentaba de las dos y que las relacionaba, formando equipos de personas asignados a grupos.  Pero bueno… al final, que uno consiga poner un parche y simular el comportamiento del componente no es suficiente ni siempre es correcto. Y realmente, acababa las lineas de mi correo, comentándole que no me gustaba la solución y no la consideraba válida, quedando a la espera de encontrar alguna idea en la red o documentación.

Asumiendo el peligro de equivocarme, creo que ninguno de los enlaces o expresiones existentes, tal y como está ahora mismo, se adaptan al componente TComboBox de forma que se simule el comportamiento de un TDBLookupCombo, por cuanto aunque somos capaces de rellenar la lista de items, cosa que puede hacer el enlace TBindList, al que nos basta indicarle en la propiedad Text del TComboBox, y Value del campo vinculado al origen de datos, produciendo de forma automática que sea relleno cada item de la lista con los valores de la tabla, tropezaremos con el problema que los enlaces o expresiones van a intentar hacer una correspondencia directa entre el item selector y el campo destino. Si optamos en ese camino se mostraran advertencias del tipo: Vd. intenta guardar un string y esperaba un valor entero… ¡Mal camino!.

Otra alternativa, es la de optar por un TBinPosition, para conseguir sincronizar el itemindex del combo con valor actual de la clave guardada en la tabla. Aquí tambien nos encontraremos con un problema. En los ejemplos que usa Embarcadero, que se encuentran  en el directorio Samples/Livebindings (podéis hacer una búsqueda con el término del nombre del proyecto que agrupa los ejemplos: BindSamplesGroup.groupproj) hay uno que se pone en varios foros como muestra de trabajo con TListBox, similar al TComboBox en cuanto a la gestión de cadenas, y siempre se utiliza el enlace TBinPosition para resituar y sincronizar el recno de la tabla con el itemindex… El detalle está en este caso, es que el Recno no se utiliza y no es aplicable a lo que buscamos, porque lo que tiene sentido es el valor de la clave (FieldByName(‘IDGrupo’).AsInteger y no el valor de la propiedad RecNo del registro).  :-)   Y el itemindex muestra la posición del item seleccionado pero no existe una correspondencia con lo que nosotros hubieramos identificado con el keyvalue de cada item.

Así que ese camino esta también lleno de problemas y nos obliga a añadir al componente ComboBox varios enlaces a datos, uno para llenar la lista, otro para sincronizar desde el control a la fuente de datos y un tercero para enfocar el sentido contrario, desde la fuente de datos al componente. Todo demasiado complicado, en relación a lo sencillo que es el enlace que hubieramos planteado desde la plataforma VCL.  :-(

Pero decía también al principio de la entrada que el hecho ayudar a alguien implica también el constante aprendizaje que uno recibe y que nos hace descubrir cosas o aspectos que en principio no esperabamos. Y digo esto porque el problema realmente no ha estado en la tecnología sino en el aprendizaje de su uso.

El motor de expresiones que se ha incorporado para sostener el corazón de LiveBindings es algo que aun está por descubrir por la Comunidad y que poco a poco va a ir siendo conocido a medida que vayamos teniendo buena documentación y aprendamos como valernos de él, en lugar de luchar contra él.

Alguien pensaría que los métodos que en tiempo de diseño nos muestra el entorno y que podemos utilizar para generar las expresiones va a ser algo inmutable y nada mas lejos de la realidad. Vamos a ver un ejemplo muy sencillo adaptado sobre los que acompañan a la unidad System.Bindings.Methods y que va a permitir que sea calculado el valor doble del introducido en un casilla cualquiera.

 

Mi método Doble Valor

unit UMyMethod;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, System.Bindings.Methods,
  System.Rtti, System.TypInfo, System.Generics.Collections, System.Bindings.Evaluator,
  System.Bindings.ObjEval, System.Bindings.EvalProtocol, System.Bindings.Consts,
  FMX.Edit, Data.Bind.EngExt, Fmx.Bind.DBEngExt, System.Bindings.Outputs,
  Data.Bind.Components, Fmx.Bind.Editors;

resourcestring
  sInvalidValueError = 'Valor no aplicable a la operación';

type
  TfrmDobleValor = class(TForm)
    edValor: TEdit;
    edDobleValor: TEdit;
    lbDobleValor: TLabel;
    lbValor: TLabel;
    BindingsList1: TBindingsList;
    BindExpressionedDobleValor1: TBindExpression;
    Label1: TLabel;
    procedure edValorChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmDobleValor: TfrmDobleValor;

implementation

{$R *.fmx}

function MakeMethodDoubleValue: IInvokable;
var
  str: String;
begin
  Result := MakeInvokable(function(Args: TArray): IValue
  var
    v1: IValue;
    LExt: Extended;
  begin
    if Length(Args) <> 1 then
      raise EEvaluatorError.Create(sFormatArgError);
    v1 := Args[0];
    str:= Trim(v1.GetValue.AsString);
    //manejamos el caso de valor vacio
    if v1.GetValue.IsEmpty then
      Exit(TValueWrapper.Create(nil))
    else
    begin
       if TryStrToFloat(str, LExt) then
         Exit(TValueWrapper.Create(LExt * 2))
       else raise EEvaluatorError.Create(sInvalidValueError);
    end;
  end);
end;

const
  sIDDoubleValue = 'DoubleValue';

 
procedure RegisterMyMethod;
begin
  TBindingMethodsFactory.RegisterMethod(
    TMethodDescription.Create(
      MakeMethodDoubleValue,        //AInvokable:IInvokable
      sIDDoubleValue,               //AID
      sIDDoubleValue,               //AName
      '',                           //AUnitName
      True,                         //ADefaultEnabled
      '',                           //ADescription
      nil));                        //AFrameworkClass
end;

procedure UnRegisterMyMethod;
begin
   TBindingMethodsFactory.UnRegisterMethod(sIDDoubleValue);
end;

procedure TfrmDobleValor.edValorChange(Sender: TObject);
begin
 BindingsList1.Notify(edValor, 'Text');
end;

initialization
  RegisterMyMethod;

finalization
  UnRegisterMyMethod;

end.

Descargar fuentes

La moraleja de la historia creo que se adivina: Cuando caía hace un par de días sobre dicha unidad (System.Bindings.Methods), fruto de querer resolver el problema, y podía ver como se habían generado las expresiones del editor, y realmente apreciaba la “facilidad” que existía en crearlas y usarlas, y la potencia que podía aportar, sin tener que depender de la que mostraba el editor, sino crearme las propias expresiones, me hacía también suponer que se abrían alternativas, pudiendo generar adicional mente vías para entiquecer el flujo de datos entre el componente y la fuente, que era precisamente lo que ahora pienso que me impedía resolver el problema. Posiblemente, la expresión que recorre la tabla para llenar la lista pueda adicionalmente rellenar los valores de las claves o keyvalues, por lo que no necesite mas de dos enlaces entre ellos: el que alimenta la lista de cadenas y el que hace corresponder una clave con un valor en la tabla, mostrando el texto selector.

Nada mas por hoy. Un abrazo a todos y estamos de vuelta para pelear por la Comunidad. Si hay algo que nadie puede prohibirme es seguir aprendiendo y disfrutando de ello.

Enlaces sobre el tema imprescindibles:

http://www.jcolibri.com/articles/firemonkey/livebindings_delphi_xe2/livebindings_delphi_xe2.html

http://www.danieleteti.it/2011/08/30/in-the-core-of-livebindings-expressions-of-rad-studio-xe2/

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

Ultima promoción de Danysoft para RadStudio XE2

noviembre 15, 2011 en 64bits, Delphi, Noticias, Noticias Delphi, Ofertas, Promociones, updates, XE2

Os incluyo en la tabla inferior un detalle de la ultima oferta de Danysoft para RadStudio XE2.

Uno de los aspectos interesantes de la misma, fuera de lo que es el producto en si, es que la oferta permite hasta el 30 de Diciembre y con carácter extraordinario,  actualizarse desde versiones anteriores a Delphi 2007,  desligándose de las condiciones habituales que marcan el fin del derecho de actualizaciones y la obligación de la compra de nueva licencia.

Me ha parecido que se puede resaltar y por ello os incluyo el texto íntegro de la pagina de Danysoft. Para mas información sobre la misma podeis contactar en los enlaces que se detallan.

 

DETALLE DE LA ULTIMA PROMOCIÓN DE DANYSOFT PARA RADSTUDIO XE2

Ver pagina Danysoft: Actualización Delphi, C++Builder, RAD Studio 2006 y versiones anteriores Texto inferior extraído de la oferta existente en dicha páginaimage

 

Fecha oferta: 15/11/2011

 

Actualización Delphi, C++Builder, RAD Studio 2006 y versiones anteriores

Si dispones de Delphi, C++Builder, o RAD Studio 2006 o de una versión anterior, aprovecha esta oportunidad única y actualiza tu software, consiguiendo todas las ventajas de la versión XE2 a un precio increíble. Aprovecha esta oportunidad antes del 30 de diciembre de 2011 solo con Danysoft.


Oportunidad especial para actualizar Delphi, C++Builder, RAD Studio 2006 y versiones anteriores

Si eres usuario registrado de Delphi, C++ Builder, Borland Developer Studio 2006, o de una versión anterior, ahora tienes otra oportunidad para conseguir la nueva versión XE2 con un descuento de hasta el 45% respecto al precio del producto nuevo, pero solo hasta el 30 de Diciembre de 2011.

Además de este descuento, al realizar ahora la compra, también disfrutarás de una promoción especial y obtendrás FastCube, Rapid SQL y más herramientas de análisis de forma totalmente gratuita (valoradas en 2935€), dependiendo de la actualización escogidaclick aquí para más información.

La versión XE2 de estos productos es la más avanzada hasta el momento, los desarrolladores reconocen las nuevas capacidades de la versión XE2, la nueva versión de 64-bits desarrollada para Windows. Además el mismo código fuente es utilizado tanto para Windows como para Mac en Delphi y C++. También se están consiguiendo nuevos desarrollos para móviles en iOS y Android con RadPHP(parte de RAD Studio XE2).

Si eres usuario de Delphi o C++ Builder, tu puedes actualizar a la versión XE2 de tu herramienta o conseguir RAD Studio. Si tu eres usuario de Borland Developer Studio, puedes actualizar a RAD Studio XE2 el cual incluye la nueva versión XE2 de Delphi, C++Builder, Embarcadero Prism para .NET y RadPHP para web y dispositivos moviles. También puedes cambiar el tipo de tu edición, por ejemplo con tu versión profesional, puedes actualizar tanto a profesional como a enterprise de XE2.

Si observas algunas de las posibilidades que ofrecemos de actualización, podrás ver que es solo para versiones 2007 en adelante, pero no te preocupes gracias a esta promoción podrás conseguir cualquier actualización desde cualquier versión, pero solo antes del 30 de Diciembre de 2011. Por ello no dejes pasar esta oportunidad, ya que a partir de 2012 para conseguir la versión de XE2 o futuras versiones tendrás que adquirirlo como producto nuevo.

XE2

Productos que puedes actualizar

Usuarios de las versiones 2006 o anteriores que hayan comprado cualquiera de los productos:

• Delphi
• C++Builder
• Borland Developer Studio
• Delphi for .NET
• C#Builder
• Kylix
• Turbo Delphi Professional
• Turbo C++ Professional

Todas las actualizaciones regulares de Delphi XE2, C + + Builder XE2 y RAD Studio XE2 están disponibles para versiones 2007 y posteriores. La actualización de “Starter” SKUs no está incluida. Esta promoción es solo para Delphi, C + + Builder y RAD Studio. Contacta con Danysoft para más información.

Más información condiciones actualización

Adquirir Actualización Delphi, C++Builder, RAD Studio 

 

Presentación de la preliminar de Delphi 64bits.

abril 4, 2011 en 64bits, Enlace interesante, Entrada Diario, Nos deja la semana..., Noticias, Noticias Delphi, Ofertas, Presentaciones, Promociones, Videos, XE

:-)

Hola a todos:

Interrumpo el silencio del blog, habitual durante los días laborales, porque creo que la noticia vale la pena.

Hoy he podido leer en facebook que se había presentado el primer video sobre Delphi 64 bits y no he tardado en acceder al enlace en Embarcadero. Ipso facto…  jajajajaja

Os recomiendo que accedais al video disponible en el link:

http://www.embarcadero.com/products/delphi/64-bit  

Aunque esté en Inglés, no creo que tengais demasiado problema en seguirlo ya que la información que visualiza es lo suficiente descriptiva para entender el contenido.

En principio, también se encuentra disponible el acceso a conocer mas detalles de la beta pero existen algunas restricciones, propias de la cantidad de peticiones así como la preferencia de los usuarios de Delphi XE y RAD Studio XE.

http://forms.embarcadero.com/forms/Delphi64-bitCompilerInformation

Me parece una fantastica noticia y personalmente creo que tiene muy buena pinta. Me ha gustado mucho lo que he visto. 

:-)

Ahhh… se ha ampliado el plazo de la oferta de actualización a Delphi XE y Rad Studio XE, finalizando ésta el 31 de Mayo (con un plazo máximo para registrar el producto del 14 de Junio).

http://www.embarcadero.com/radspecial

Oferta promoción XE marzo

marzo 10, 2011 en Delphi Prism, Noticias, Noticias Delphi, Ofertas, Promociones

Actualiza durante Marzo a Delphi, C++Builder o RAD Studio XE al precio de actualización

Podeis ampliar la información visitando la promoción en Danysoft.

Fecha tope de la oferta hasta  31 de marzo de 2011.

 

 

Nos deja la semana 37 – 2010

septiembre 13, 2010 en Delphi, Delphi Prism, Eventos, Noticias, Noticias Delphi, Ofertas, Presentaciones, Promociones

He tomado la costumbre desde hace bien poco, de iniciar una entrada bien comienza la semana e ir añadiendo al borrador los enlaces y pequeños comentarios para luego poder recordarlos. Así que tenía varias anotaciones escritas, de las cuales, hay algunas que me parecen interesantes. Antes, rebuscaba mientras iba escribiendo, y no siempre recordaba todo. Y quizás porque uno se hace mayor, va cambiando la estrategia  :-) (este año he descubierto mas curiosidades, entre otras, que tengo que alejarme la documentación para poder enfocar con claridad…)  :-D

Para empezar, sobra comentar que casi todo lo que he podido leer de nuestra comunidad, ha girado alrededor del lanzamiento de Rad Studio XE, o bien comentarios de algunas novedades, o bien los anticipos (dar a conocer la fecha) de lo que van a ser las presentaciones en los países que forman parte del mapa de futuras “ventas” para Embarcadero.

Así que si vais a la página de eventos http://www.embarcadero.com/news/events veréis que se inicia la gira visitando numerosos paises, tales como Ucrania, Rusia, República Checa, Inglaterra, Polonia, Australia, Estados Unidos, etc.  , así como organizando Seminarios On Line como los que se celebrarán para Brasil, Japón o México, por citar algunos, etc. A España nos tocará el 28 de Septiembre, organizado lógicamente por Danysoft:

http://www.danysoft.com/danysoft/ven-a-conocer-el-nuevo-rad-studio-xe-evento-gratuito.html

Pero fuera de la referencia a la cita, que ya hicimos en una entrada anterior, me pareció bastante interesante una anotación en el twitter, que llevaba finalmente a la lista oficial de componentes compatibles con Delphi XE. Esta lista conviente tenerla a mano para un momento posterior, ante la necesidad de consultarla.

http://edn.embarcadero.com/article/40813

También existe otro enlace en el que podéis personalizar el resultado de esta búsqueda, que os va a devolver una relación de los partners de Embarcadero y de los productos vinculados al entorno de desarrollo.

http://tp.embarcadero.com/partnercentral.exe/default

Mas cosas…

Andreano Lanusse, recalcaba en su blog, días atrás una buena notica que yo no llegué a advertir hasta bien entrada la semana y era el cambio de condiciones para el desarrollo de aplicaciones para iphone/ipad, que hasta ese momento había apartado a Delphi Prism, con la normal preocupación de los desarrolladores. Si estais en estos temas, tenedlo en cuenta y visitad las paginas de Andreano, que contiene varios links con detalle de la información legal.

http://www.andreanolanusse.com/blogen/dont-worry-you-can-write-delphi-prism-applications-for-iphoneipad/

Luego, a mitad de la semana, otro enlace del Twitter, me llevaba a curiosear en el blog de Jeroen Pluimers. Su entrada giraba alrededor del uso de la clase TStrings para “parsear” cadenas con delimitadores de campos. Ya hemos resaltado anteriormente su blog y figura en la sección de enlaces.

http://wiert.wordpress.com/2010/09/08/delphi-use-tstrings-to-parse-non-standard-separated-strings-and-validate-it-with-dunit-tests/

Bueno… conocerlo os puede ser util de cara a no reinventar la rueda con algo que ya puede estar implementado (en este caso concreto Jeroen se planteaba el problema de los espacios en blanco, como podeis ver, tema que resuelve de una forma sencilla con la asignación de forma correcta de varias propiedades y el uso fnalmente de Trim).

Y cerrando estos comentarios, hacer una mención breve a la promoción actual de compra de la familia de productos XE. En este caso, uno de los valores añadidos en la compra va a ser la posibilidad de descarga de algunas versiones anteriores para los compradores, tales como Delphi 7, Delphi 2007, Delphi 2010, etc.

Access to previous versions of Delphi (7, 2007-2010), C++Builder (6, 2007-2010), Delphi Prism (2009-2011) at no extra cost

Leído de http://www.embarcadero.com/products/rad-studio

Aunque en el caso de México, según lo que pude leer de un correo de Gopac, existe un descuento adicional en la compra del producto, eso sí, exclusivamente en el mes de Septiembre y con algunas restricciones de compra. Quizás finalmente, en España también pueda existir un descuento similar. Imagino que esto será desvelado durante la celebración de la presentación en Madrid.

 En fin. Si necesitais mas información sobre la promoción de venta en España podeis acceder en el enlace:

http://www.danysoft.com/general/rad-studio-xe.html

Tabla de diferencias por versiones http://www.danysoft.com/free/rad-studio-features-matrix.pdf 

Tabla de precios http://www.codegear-shop.com/Embarcadero-RAD-Studio-XE

Nada mas.

Un saludo a todos.

¡Ruido de campanas!

agosto 31, 2010 en Delphi, Noticias, Noticias Delphi, Ofertas, Presentaciones, Promociones

¡Ruido de campanas!.

Antaño en los pueblos, si existían eventos importantes, se podía escuchar el tañir incesante de las campanas, rasgando el infinito cielo. ¡Talán! ¡Talán! ¡Talán!… Los vecinos se asomaban a las balcones y ventanas, a ver que sucedía. Pudiera ser, incluso, que  les sobresaltasen las alegres y sonoras tracas y los cohetes. La gente, engalanada, salía a pasear por las calles para compartir aquel evento extraordinario. Los niños jugaban confiados y las risas y gritos de sus travesuras realzaban la belleza de la mañana. Un paisaje bucólico donde las palomas eran dueñas de las plazas y revoloteaban confiadas. Dia de fiesta…

:-)

Sinceramente, no creo que sea este el caso de hoy… que ha salido Rad Studio XE y ya se encuentra disponible en Embarcadero. Pero no deseo ser agorero y aguafiestas, sino todo lo contrario. La realidad se nos muestra bajo mil interpretaciones, y los que ven hoy en las campanas días gloriosos y festivos, comparten mesa y mantel con quienes solo escucharon las campanas y sirenas de los coches de bomberos apagando algún fastuoso incendio. Quienes creyeron reconocer a la gente paseando relajada, parten hoy el pan con quienes adivinaron la manifestación y el tumulto…

Somos libres de interpretar la realidad. Tal es la grandeza humana. 

Si quereis acceder a la información sobre el evento de lanzamiento de esta nueva versión:

Rad Studio XE

También hay disponibles 3 videos que recogen las novedades principales y que han sido publicados durantes estas semanas anteriores para que los futuros usuarios o compradores fueran conociendolas.

Preview #1 – Coding and Productivity

http://www.embarcadero.com/ch-e-video.php?file=75-12v5vmJ2yB45TvKA4R62gHp7JbcGzxiw-HD.mp4&vid=346 (link al video en español)

Preview #2 – Optimizing and Automating

http://www.embarcadero.com/ch-e-video.php?file=72-uHpwQMEUe9Wp02Dh92znw8b8qL6ulsf1-HD.mp4&vid=377 (link al video en español)

Preview #3 – Multi-tier, Cloud and Web

http://www.embarcadero.com/ch-e-video.php?file=75-zqhQqsFcx158aazs1fC3kUUy6RLpK5Y7-HD.mp4&vid=378 (link al video en inglés)