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 

 

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.

 

 

Cerrando temas…

junio 23, 2011 en Delphi, Entrada Diario, Nos deja la semana..., Noticias, Noticias Delphi

 

Estas semanas,- tanto en lo personal como en lo profesional-, han estado marcadas por una idea mas o menos constante: la idea de cerrar temas y pasar página.

Posiblemente, vosotros tambien hayais  sentido esa necesidad, si no ahora, en otro momento…, aunque, siendo justos, por estar tan cercanas las vacaciones de verano, se presta a ello especialmente; de forma que la idea de descansar de verdad, de verdad de la buena, con la conciencia de que no se quedan temas pendientes, es altamente tentadora.

En lo personal, gracias a Dios, la semana ha traido el fin de las mini-reformas en casa, que me han tenido liado, fin de semana tras fin de semana, con las chapuzas propias de los tiempos de crisis, donde uno aprende a elegir la pintura para pintar una habitación, a distinguir una brocha de un rodillo y a descubrir algo importante: que nunca se debe poner por debajo de la altura de la herramienta, sobretodo porque suele acabar manchado.

Las crisis tienen este tipo de cosas, y hacen que surjan los chapuceros como setas (¡ojo que lo digo por mi!), que igual te sirven para un roto que para un descosido: Así que pinté la habitación que estaba arreglando, mi antiguo espacio de trabajo (cuasi Santuario), para que fuera invadido por la reina de la casa, mi hija… ¡Para que luego digan que los programadores no servimos para nada…!  Estas manitas tambien han pintado, desmontado las enstanterias, movido cajas y cajas de libros y trastos y finalmente, pulido el suelo de la habitación…  :-)    Sin contar las toneladas de papeles inútiles que he ido rompiendo a lo largo de las semanas y que han llenado mas bolsas de basura de las que hubiera imaginado…  :-D

¡Oye!… ¡entre nosotros!, ¡que se ha quedado de cine!. Ayer trajeron los muebles, y el esfuerzo y las semanas de penurias habían valido la pena.

También durante esta semana acabaron las clases de repaso de Inglés que he recibido durante bastantes meses. Puestos a dar la lata a nivel internacional e incomodar a toda la Comunidad Anglosajona, era necesario hacerlo con un poco más de clase.  :-)    jajaja 

No, no es que fueran muchas horas semanales, porque han sido solo un par de horas repartidas en dos días semanales, pero sí las suficientes para que tuviera que sacrificar mis entrenamientos, tras la jornada laboral.

Y además, fin del curso de los mayores, hasta Septiembre que lo retomemos, con gente nueva y no tan nueva. Las aulas quedarán vacías otra vez, y nuevamente, en una rutina que se ha repetido año tras año, volverán a pegarse de tortas para venir a su clase de informática.  :-)   Unos volveran y desgraciadamente alguno fallará a la cita, ejemm… ejem…  algo que es ley de Vida. :-)   

Me han enseñado mucho (más ellos a mi que yo a ellos  :-) ). Porque en esas clases uno se da cuenta cómo los sistemas que creamos,  nuestro hardware, nuestro soberbío software del que nos vanagloriamos, ignora a menudo a una población cada vez mayor, la de nuestros padres y abuelos.

Interfaces poco adecuados a su vista y condiciones, y sistemas complejos para personas que no tuvieron la oportunidad de crecer con la tecnología.  Botones diminutos. Alertas visuales ridiculamente escondidas. Ventanas con trampa que esperan ser clickeadas sin que el usuario ni siquiera lo sepa. Nadie piensa en ellos. Cualquiera que trabaje con nuestras herramientas sabe que los destinatarios de nuestras aplicaciones no son esta población. Un día se me ocurrió ponerles el interfaz de alto contraste y me miraron ofendidos: ¡chico…! ¡te pensaste que soy rompetechos y que ya no me veo…!. Casí me pegan. ¿Tanta tecnología y a nadie se le ocurre crear un perfil de usuario predeterminado para personas mayores? Algo creado especificamente para ellos, con programas adaptados especialmente para sus problemas. Es una frivolidad pensar que cambiando la resolución de la pantalla se arregla el problema.

Sin embargo, creo que todo tiene su recompensa, sobretodo cuando ves su carita de asombro y felicidad, si son capaces de escribir una correo a sus hijos, de compartir la foto de su nieto a traves de una red social o simplemente de salir de su espacio vital y conocer otros navegantes, en esa inmensa soledad que se convierten a menudo sus habitaciones, ya en el hogar familiar o en la residencia, donde con frecuencia acaban por ser abandonados. Ese cariño que te transmiten en momentos determinados también te ayuda a ser mejor programador y a pensar que no somos el ombligo del mundo.

Y ya que hablamos del centro de mayores, comentaros también que estas semanas se retomó de nuevo la puesta en marcha del programa que compartimos en el blog en las entradas “Un día con los mayores”. El programa, se lo regalé al Centro (a coste cero patatero),  en estas fechas en el año anterior, y quedó pendiente tan solo de la toma de datos, rellenar las fichas, etc, etc. que era un labor ya del personal. Pero se pasó el plazo de las inscripciones a las actividades y el proceso se interrumpió y se pensó en la conveniencia de esperar estos meses pasados. Cuando hace un mes retomé el tema para ver como lo habian llevado, descubrimos que la persona que había grabado los datos, un chavalito joven contratado para ese menester, jajajaja escribía igual que enviaba mensajes de movil. :-D   por lo que, puestos a escoger entre revisar los datos (desgraciadamente llenos de faltas de ortografia e irregularidades) y pasarlos correctamente se optó por hacer borron y cuenta nueva. Esté mes, les preparé algunas modificaciones para que fuera mas ágil la toma de datos y el proceso de inscripción. Falta simplemente añadir un lector de codigos de barras y creando un carnet con los datos básicos para evitar un porcentaje de búsquedas, van mas que apañados.  :-)

Asi que otro tema cerrado… Poco a poco voy dejando zanjado temas a diestro y siniestro, quedando tan solo pendiente de mi actividad principal en la empresa.

Y en el blog sigue la tranquilidad. Nuestra comunidad inició otra fase de calma chicha, donde hay pocas novedades, lejos de los meses que preceden al lanzamiento de cada versión. Aun así existen apuntes interesantes que merecen ser destacados:

 * Un nuevo programa de certificaciones para desarrolladores Delphi: http://www.embarcadero.com/certification, que va a permitir evaluar los conocimientos en dos niveles o programas distintos (Delphi Developer Certification y Delphi Master Developer Certification). En España, Danysoft facilitará el acceso y desarrollo de los mismos, impulsando algunos cursos que ayuden a obtener la certificación. Sin entrar en cuestiones sobre si esto en si es necesario o no lo es, cada cual puede tener su opinión, lo cierto es que siempre ha podido existir esa demanda por parte de la comunidad de programadores, aunque haya ido emergiendo y ocultandose como los ojos del Guadiana. 

Podeis acceder a esta información en:

Programa de Certificación Delphi

 

 

*  Para los que estabamos esperando nuevas publicaciones, recientemente hemos compartido en facebook la aparición del nuevo libro de Marco Cantú “Delphi XE Handbook“,

 que puede ser adquirido bien a través de Amazon o en formato digital en el sitio FastSpring

El libro, podría considerarse una extensión de su última publicación y se complementa con éste. De hecho, el autor ha considerado las cuatro ultimas publicaciones dentro de una oferta conjunta que podeis visitar en:

http://www.marcocantu.com/handbooks/

Tardará un poco en ser traducida pero me imagino que será algo que ya esté en mente de Embarcadero, para que pueda llegar finalmente a los desarrolladores hispanos en español, al igual que se hizo con su publicación sobre las novedades en Delphi 2010.

* Con fecha 16 de Junio, resalté en Facebook el articulo de Jon L. Aasenden, Beginning of the end for the .net framework?. En cierta forma creo que la entrada de su blog refleja una inquietud que se hace palpable y manifiesta, y que no tiene que ver tanto sobre la caducidad de punto net sino la incertidumbre de no saber bien hacia donde vamos. Si bien nadie pone ya en duda que Delphi no solo no ha muerto sino que anda en los tablaos flamencos de juerga en juerga, disfrutando de la vida que le da la supervivencia de las aplicaciones de escritorio y el que la nube no deje de ser una quimera y el framework de punto net un niño gordo y pesado, harto de chocolatinas y dulces. Casualmente esta semana hojeaba en mi trabajo un ejemplar de Computerword, donde aparecian retratados y engominados los directivos de las empresas mas pesadas y relumbrantes del pais, y detras de la parafernalia y de los tecnicismos, la gomina y las grandes palabras, era demoledor leer un sencillo articulo donde se reconocia que nadie se atreve a poner las aplicaciones críticas donde no las pueda tener a buen recaudo. Entonces uno se pregunta: ¿para que tanto bombo y platillo?

Delphi sigue ganando algunos premios en el 2011,

http://www.codeproject.com/PressReleases/3935/The-Code-Project-Announces-Third-Annual-Members-Ch.aspx,

y sigue siendo considerado por una mayoria de programadores como una de las mejores herramientas de desarrollo para aplicaciones nativas Windows. De hecho, creo que la comunidad recibió como algo bueno la compra de Microsoft de Skype por 8.5 b. de $, que tradicionalmente se había considerado una aplicación hecha con Delphi (aunque luego realmente no sea toda ella como muchos apuntaban).

Ya… si… (de momento para 32 bits)… pero tened paciencia. En nada vamos a estar desarrollando con 64 bits (a la vuelta de la esquina), para Mac y para Linux. ¡Y si no, tiempo al tiempo!  

* Y finalmente nos queda comentar que está próximo el fin de la última promoción de Embarcadero, a la que podeis acceder en España desde el enlace:

Aprovecha el momento Rad Studio XE

Si no me equivoco, la oferta está vigente hasta el 30 de Junio.

http://www.embarcadero.com/radoffer

Como sabeis, la parte principal de la oferta es la posibilidad de obtener Rad Studio al precio de Delphi, que es lo que a priori la puede hacer interesante.

Respecto al blog, estoy valorando algunos cambios, con la única motivación de que os pueda ser realmente util y atractivo. Estoy en ello y ya he comentado algo de ésto en el Grupo de Delphi Básico en Facebook. Aquí creo que es la primera vez que hago referencia. La idea al final, es que sea mucho mas dinámico y que preste un servicio real a la Comunidad. Esa fue siempre la intención aunque a lo largo de estos años, no siempre se pudiera conseguir. 

De hecho, incluso me planteo cambiar el título del blog y que deje de ser Delphi Básico. Este nombre seguía un ideario en el que me parecía importante (desde siempre): la necesidad de seguir hablando de lo básico y de lo sencillo. Cuando se acordaban desde la redacción de Sintesis en Albor, qué temas ibamos a abordar en los siguientes articulos, creo que siempre hacia hincapié en esa necesidad, más teniendo en cuenta el contexto de aquellos días en donde existía menor cantidad de recursos y enarbolabamos la lanza de la necesidad de tener el entorno en nuestro idioma. Estaba muy sensibilizado con ese punto, y desde siempre, ha sido un tema sobre el que giró el trasfondo de muchas de las entradas que se pueden leer.

Hoy creo que hay otras palabras que encajan mas en mi forma de entender el contenido del blog: la comunidad, el compromiso y  la solidaridad con quienes realmente no disponen de medios, la huída de las palabrerias, con las que los liantes acostumbran a salvar las apariencias, y en definitiva, servir de puente entre personas, culturas y comunidades. Es por eso que valoro que Delphi básico se convierta en Delphi solidario.  :-)

Y parte del trabajo real del blog y de ese esfuerzo, sucede entre bastidores y realmente, las entradas que podeis leer son asi como los icebergs. Es la parte mas visible pero queda una menos notoria pero mayor, dado que buena parte de mi tiempo lo dedico a buscar recursos en el día a día para el blog. Algo que llevarme a la boca… jajajaja. :-)  Cada vez que encuentro algo que puede ser interesante en cualquiera de las redes sociales: un enlace, una entrada de un blog, sea de la comunidad que sea, no hay tiempo que perder para que lo podais tener en el grupo de facebook o reenviadas en twitter. Ese sí me parece un buen pegamento que una a las Comunidades, lejos de una concepción nacional y restringida.

Seguiremos comentando las novedades que puedan surgir en el blog y en las Comunidad en las siguientes entradas.

Que paseis un buen fin de semana.

 

 

 

 



Preliminar Delphi 64 (Video en español)

abril 26, 2011 en 64bits, Delphi, Noticias, Noticias Delphi, Presentaciones, traducciones, Videos

 

 

 

Canal Tecnológico Danysoft