viernes, 5 de diciembre de 2008

Terminada mi conferencia en CodeRage III - Código fuente

Mi conferencia acaba de terminar, utilicé como ejemplo un Punto de Venta Unicode (POSUnicode) que es un ejemplo simple de aplicación internacionalizada (en Español, Ingles y Chino) que además manipula datos con caracteres internacionales en una tabla Interbase mediante ClientDataSet y dbExpress.

El código fuente fue subido a la CodeCentral  de CodeGear para descarga libre en
http://cc.codegear.com/item/26342

Me alegra haber sido parte una vez mas de las conferencias y poder servir a la comunidad hispanohablante de Delphi, ojalá les sirva y tengamos muchas empresas y programadores freelance compitiendo internacionalmente.
Un día a la vez.

miércoles, 26 de noviembre de 2008

Se acerca CodeRage III

Una vez mas tendré el gusto y placer de participar como orador en las conferencias en línea organizadas por CodeGear.

Esta será la cuarta  edición del evento antes nombrado CodeGear Developer Days en Español, que ahora se une con las conferencias  de todo el mundo en un mismo evento mundial de 5 días, todos los días habrá conferencias en español sobre Delphi y otras herramientas de Embarcadero Technologies.



Esta vez mi presentación se titula "Compitiendo internacionalmente con Delphi" y tratare temas de internacionalización y localización de aplicaciones, además de algunas practicas de competencia de tal manera que podamos vender nuestro software a otro países en otras lenguas.

CodeRage III será celebrado del día 1ero. al 5 de diciembre y la inscripción es completamente libre y gratuita con solo registrarte en la pagina, la agenda de las conferencias EN ESPAÑOL es la siguiente:

Hora
(Mex GMT -6)
Tema Ponente
1ero. de Diciembre
9:30 a.m. Delphi Prism Andreano Lanusse
12:00 p.m. Generics y Anonymous methods en Delphi 2009 Pablo Soligo
1:15 p.m. Criptografía en Interbase 2009 José Castillo
   2 de Diciembre
9:30 a.m. DataSnap - Integrando aplicaciones multicapa win32 y .Net Andreano Lanusse
10:45 a.m. Desarrollo Web 2.0 con Delphi 2009 Edgar
3 de Diciembre
9:30 a.m. Centralizando y padronizando aplicaciones con ActionManager Elíseo González
10:45 a.m. Creando interfaces ricas con Ribbon Controls y Delphi 2009 Marcos Satin
  4 de Diciembre
9:30 a.m. Una herramienta para aislar e identificar problemas de rendimiento de SQL Rick Lannitelli
10:45 a.m. dbExpress metadata en Delphi 2009 Juan Antonio Castillo
12:00 p.m. Afrontar la realidad - el afinamiento de SQL es tanto un arte como una ciencia Raúl Gutiérrez
5 de Diciembre
9:30 a.m. Desarrollo de componentes VCL para PHP - Introducción José León
10:45 a.m. Compitiendo a nivel internacional con Delphi 2009 Salvador Gómez
12:00 p.m. Desarrollo de componentes VCL para PHP - Conceptos avanzados José León

Los horarios están de acuerdo a la hora central de México, puedes consultar una tabla de equivalencias para tu país u horario que creé para una edición anterior.

Quiero mencionar que las conferencias en ingles (o en portugués) valen también mucho la pena para quien tenga el oído acostumbrado a escuchar y entender ese idioma.

Las conferencias en español son a partir de las 9:30 a.m para México, 2:30 p.m. para Argentina y 6:30 p.m. para España y se realizaran en el AULA 2 (ROOM 2).

lunes, 10 de noviembre de 2008

Espacio Delphi: En construcción.

Se comienza a materializar una idea que varios desarrolladores hemos venido gestando desde hace tiempo. Se llama EspacioDelphi.net y tiene el objetivo de ser un sitio de colaboración editorial para la comunidad de programación Delphi, algo como un blog conjunto pero con muchas mas áreas de información como por ejemplo herramientas, sitios y código de ejemplo, noticias y todo en español por supuesto.

Pensamos que no debe limitarse a Delphi, Delphi EspacioDelphi_sPrism y Delphi for PHP, mas bien incluir "lo que el desarrollador necesita". Información y utilerías de bases de datos, tutoriales cortos, recomendaciones de software libre y aplicaciones para problemas específicos.

Y por supuesto, haciendo caso de nuestra propia filosofía, el sitio entero es una aplicación creada de cero usando Delphi for PHP, por el gran Norberto Martínez que afortunadamente es uno de los involucrados y fundadores (cuya dirección de correo ahora es: norberto PUNTO martinez ARROBA espaciodelphi PUNTO net).

Además de Norberto y tu servidor, están involucrados en esta etapa de creación y fundación un par de desarrolladores con mucha experiencia técnica y éxito como desarrolladores/consultores: Ramiro Corona (con xBase, Delphi y FireBird) y Alvaro Naranjo (con Visual Studio, Delphi y SQL Server), y un amigo en común que prefiere ser llamado simplemente "Scotty" cuya experiencia en el software libre nos completara con grandes soluciones alternativas.

Hasta ahora es solo el nacimiento de un proyecto, el espacio aportado a la comunidad, para que con mucho trabajo y muchos "granos de arena" de todos, se convierta en algo mas grande y útil para todos los que vivimos con Delphi como nuestra mas poderosa herramienta.

Los mantendremos al tanto de los avances.

martes, 4 de noviembre de 2008

Parece que va a llover....el cielo se esta nublando

Imaginemos por un momento que podemos poner cualquier servicio en Internet y administrar cualquier cantidad de servidores en cualquier numero de plataformas (Windows, Linux, OpenSolaris, etc.) según sean nuestras necesidades o las de nuestros clientes, sin necesidad de comprar un solo servidor. Todo en prácticamente unos minutos, desde la comodidad de tu casa u oficina.

Nunca dije gratis, pero aun así es relativamente mucho mas accesible a comparación del costo de comprar un buen servidor (Hardware y licencia del sistema operativo en caso de Windows) y colocarlo en una infraestructura adecuada. Todo se reduce a la renta de la "nube".

Y es que la computacion en "nube" es la nueva ola de tecnologías, según Amazon, Google y ahora Microsoft con sus servicios Elastic Compute Cloud (EC2), App Engine y Azure respectivamente.

¿Que es exactamente "computo en nube"?

Por ejemplo EC2 consiste básicamente en que Amazon tiene una enorme cantidad de servidores (hardware) y un enorme ancho de banda disponible, cuentan con una infraestructura totalmente respaldada (redundancia de almacenamiento, energía y conexión) y ellos se encargan de mantener todo eso. Tu simplemente te registras para el servicio -con tu respectiva tarjeta de crédito por supuesto- y puedes seleccionar una imagen (digamos una "plantilla" de máquina virtual) que puede tener Windows 2003 server o Linux Fedora Core u otra plataforma disponible, con o sin servicios preinstalados (por ejemplo Apache, MySQL, SQL Server, etc.), la modificas a tu gusto instalando aplicaciones y cambiando configuraciones, etc. y por ultimo la conviertes en una imagen de máquina virtual lista para correr.

Cada máquina virtual una vez creada puede correr cualquier numero de veces (instancias) y te cobran por las horas que cada instancia este corriendo, que no es tanto como podría pensarse.

¿Como cuanto cuesta?

Un ejemplo: una instancia con Windows 2003 server con 1.66 GB de RAM y 170 GB de disco cuesta  0.125 dólares por hora, que equivale a 3 dólares por día o a un promedio de 90 dólares por mes. Además cobran por Gigabyte subido y descargado (0.1 dolar por GB aprox).

...y ahora que?

Creo que esto va a cambiar paulatinamente el panorama de muchos servicios, siempre y cuando nos acostumbremos a que nuestros datos no están con nosotros, sino flotando por ahí -probablemente mas seguros, pero flotando por ahí- en la infraestructura de un proveedor. Sin embargo, si se usa la nube el ahorro inicial y a largo plazo puede ser mucho: hardware, licencias, soporte, electricidad, acondicionamiento, caídas, enlaces principales, redundancia, seguridad.

Al rato muchos estaremos llevando nuestras aplicaciones a correr en servidores virtuales en una nube, por algo Microsoft, Google, Amazon, Yahoo e IBM están invirtiendo tan fuerte en ello....

Podría ser una oportunidad para muchos y hay que aprender a aprovechar esas oportunidades, por que si no como cantaría el buen Pedro infante: 

Parece que va a llover...
...el cielo se esta nublando...
...parece que va a llover...
¡hay mama me estoy mojando!

lunes, 27 de octubre de 2008

Los colores de Delphi Prism

Reportándome de nuevo y con nuevos bríos, después de largos e interesantes proyectos.

Tal vez muchos ya escucharon de la estrategia de Embarcadero/CodeGear para Delphi.Net llamada ahora Delphi Prism

El destape oficial de Delphi Prism esta en la pagina de CodeGear ahora mismo, tal y como lo comentara Nick Hodges, este fue anunciado durante la Professional Developers Conference (PDC) 2008 en Los Angeles, California.

Delphi Prism usa el compilador de Oxygene, que es un producto de la empresa RemObjects para código Object Pascal para .Net. Y por supuesto agrega la funcionalidad que ha creado RemObjects a la que ha desarrollado CodeGear en anteriores productos, por ejemplo la conexión cliente de DataSnap, el uso de dbExpress y una licencia de BlackFish.

Delphi Prism puede ser standalone o funcionar como un plug-in de Visual Studio 2008, y al usar Mono podremos compilar nuestro código para correr tanto en Linux como en Mac OS X.

Por supuesto, así se pueden aprovechar todas las capacidades .Net 3.5 (LINQ, Silverlight, WPF, WCF, etc.) y con esta estrategia no sera dificil que CodeGear mantenga a Delphi .Net al corriente con lo ultimo del .Net framework.

Hay que pensar en el hecho de que necesitemos otro IDE (Visual Studio) aunque este tenga una versión gratuita (Express), sin embargo, Prism podría añadir mucha funcionalidad y facilidad de desarrollo y mantenimiento de las aplicaciones .Net a través de nuevas clases (componentes y tecnologías) como es el estilo de Delphi desde siempre, tal y como esperaba.

Aun no esta disponible el producto, pero anunciaron que lo estaría antes de terminar el año.

martes, 2 de septiembre de 2008

RAD sobre RAD: Un gran trabajo técnico-practico de Al González.

A mi parecer, el trabajo técnico-creativo hispanoamericano se distingue por ser mas bien conceptual que practico, es decir, rara vez nuestra industria innova en sus procesos o sus productos. No es una queja, entiendo las razones y el origen de nuestras limitantes, sin embargo no dejaremos de luchar por que eso mejore lo mas pronto posible, ¿cierto?

Dentro de todo, no dejo de mencionar a estudiantes e investigadores de los bachilleratos y universidades técnicas que, afortunadamente, contradicen poco a poco lo que ahora digo. Aunque insisto, en su mayoría son innovaciones conceptuales, que termina tomando gente de otros países para llevarlos a la practica.

Al González, el estimado miembro de la comunidad de programadores Delphi en hispanoamerica, que muchos conocemos por ser apasionado, particularmente introspectivo e idealista, pero sobre todo un programador excelente, es creador de uno de esos casos de innovación aplicada, practica y competitiva, que no se limita al grado conceptual para nada.

Últimamente tuve oportunidad de probar su framework MagiaData para Delphi en un proyecto en el que estaban usando Delphi 7, y quiero decir que cuanto mas lo uso y lo entiendo, mas me sorprende la calidad de código y la facilidad que permite. Por ejemplo, teniendo un maestro-detalle simulado en cache (incluso con varios detalles) un MagiaDataSource tiene una propiedad (DetailedApplying) que con solo ponerla en True, ApplyUpdates en el maestro aplicara los cambios hacia la tabla como siempre, pero además aplicara los cambios en sus detalles. Eso es lo que yo llamo ahorrar tiempo.

Una de las "magias" que mas me llamo la atención es la clonación de DataSet con el mismo MagiaDatasource, simulando tener varios cursores en un mismo dataset. Es decir, defino un solo conjunto de datos, y lo veo desde varios forms a través de sus respectivos MagiaDataSource como lo haríamos con un TDataSource normal, pero si usamos la propiedad DataSetCloned, cada form puede estar en una posición distinta y podemos manejar sus propios eventos.

Todos los componentes de MagiaData mejoran y facilitan varios aspectos de la programación de base de datos en Delphi. Desgraciadamente (espero de verdad que temporalmente) aplica a Delphi 7 y hasta ahora no hay una versión para Delphi 2006 o 2007. Contactare pronto a Al para que saber sobre el roadmap del desarrollo de MagiaData y como impactaría en las licencias compradas actualmente.

Encontré que Al tiene publicado el precio y la documentación (que es un archivo Doc que incluye con su librería) y ahí se pueden leer las posibilidades que tiene, por que junto con GHFreebrary (su biblioteca/framework de funciones gratuita) realmente es el trabajo practico y destilado de toda la vida de un gran desarrollador.

lunes, 25 de agosto de 2008

Se libero Delphi y Michael Swindell nos hizo chapuza con el precio a la gacha

Delphi 2009 esta liberado. Y su verdadero precio resulto ser prácticamente el mismo de Delphi 2007. ¿Que puedo decir?

Podría echarle la culpa al vicepresidente de CodeGear por anunciar en su entrevista de eWeek que el precio era otro mucho mas bajo que comente con grata sorpresa hace unos días. Podría echarle la culpa a Microsoft haciendo alguna teoría de conspiración en contra de Delphi en donde adujera que le dio una mochada al Michael o a eWeek para dar darle un golpe a la credibilidad de CodeGear+Embarcadero. También me puedo defender argumentando que deje bien claro que "En el sitio de Embarcadero aun no hay anuncio oficial..." y También puedo pedir una disculpa por apresurarme a gritar algo que creí verídico, por venir de tan "confiable" fuente como es eWeek y Michael Swindell y hacerme ilusiones yo y a muchos otros que, juntos creemos que es lo mejor que puede suceder.

En fin, opto por Todas las anteriores: RECLAMO (dejaron que esa mentira quedara publicada), SOSPECHA (no puedo creer que alguien sea tan estúpido para ver como una estrategia inteligente anunciar el precio "per license" de un producto y que resulte ser el precio del upgrade del producto, a menos que esperen que nadie nuevo lo vaya a comprar) y por ultimo DISCULPA. Disculpen por haber sido tan ingenuo. Si de algo sirve, en lo personal de hoy en adelante no me voy a dejar convencer por la artera mercadotecnia de nadie y checar que, si repito o destaco información, sea la ya oficializada, por decirlo así.

Total, que el precio anteriormente "anunciado" como precio por licencia es, oficialmente, el precio por actualización. Ahora un verdadero comparativo de precios, con información 100% oficial y que refleja la realidad ;)
No hay estrategia de precios nueva ni nada. Vaya decepción.
Saludos a todos.

miércoles, 20 de agosto de 2008

Delphi 2009 se liberara este lunes 25 de agosto

Primero lo primero:
¡¡Felicidades a Guillermo Pérez por esa medalla de Oro!! El oriental "Arte de la mano vacía" es también mi deporte preferido, y es un orgullo tener compatriotas como Guillermo Pérez, Oscar e Iridia Salazar, Víctor Estrada y muchos otros. Claro, grandes Maestros forman grandes Hombres y todos ellos han tenido grandes maestros del Tae Kwon Do y de la vida. (¡Vamos Idulio y Maria Espinoza! ¡Vayan por todo!)

Ahora si :)
En el sitio de Embarcadero aun no hay anuncio oficial, pero en una entrevista de eWeek con Michael Swindell (products VP) anuncia que sera este lunes 25 de Agosto cuando sean liberados Delphi 2009 y C++ Builder 2009. Como Nick Hodges dijo, este release es SOLO DE DELPHI (win32) y aun están trabajando para liberar este mismo año RAD Studio 2009 que incluirá también a Delphi.Net con su nuevo enfoque vanguardista.

¿Precio? no solo fue sorprendentemente anunciado también, es una grata sorpresa en si. Delphi 2009 Professional costara 399 dlls. mientras que la versión Enterprise esta etiquetada con 1,299 dlls. Ahora existe además una versión Architect (solo existía para RAD Studio) que costara $ 2,299 y la diferencia se debe a que incluye una licencia del producto para desarrollo de Base de Datos de Embarcadero, el ER/Studio.
Digo, solo por comparar precios:
Esta estrategia de precios agresiva ¡la verdad me agrada mucho! eso es todo David I y Michael Swindell! Por supuesto, las características de Delphi, VFP y VS son distintas (tiendo a presumir que las de Delphi son mas adecuadas, el desarrollo mas rápido y el resultado tiene un mejor desempeño, además que CodeGear cuida la compatibilidad del código con las nuevas versiones :)

Y aclarando ese punto y comparándolo con Delphi 2007, menciono solo algunas mejoras de Delphi 2009 que ya tuve el placer de experimentar ;)
  • Tipos genericos (en win32!)
  • Metodos Anonimos
  • 100% Unicode y soporte unicode (Componentes, clases y funciones, ¡dbExpress! )
  • Nuevos componentes en la VCL (Ribbon por ejemplo)
  • Mejoras en el proceso de compilado/construido
  • Y (en lo que a mi respecta algo verdaderamente excelente) un nuevo DataSnap basado en JSON/RPC en lugar de COM. Mucho mas compatible (Conectable desde Java, p.e.) y mucho, mucho mas poderoso y mas flexible.
Estas son para mi (y espero que para todos nosotros en México, España y toda Latinoamerica) mas buenas noticias, muy buenas noticias en general. ¿Verdad?

Disculpen por la ráfaga de posts condensada en uno solo, tenia mucho que decir y he estado (como muchos de ustedes) bastante ocupado, además de que ha sido interesante pescar el Tiburon :)

Saludos.

Actualizacion 25-Ago-2008: se publicaron estos precios como precio por upgrade! Ya ni la hacen.

jueves, 14 de agosto de 2008

Bug de ordenacion del gadget ConexionesRDP corregido

Gracias a Juan Ignacio Tel por reportarme de forma detallada un problema con la ultima versión (1.20) del gadget ConexionesRDP y por ser tester, ahora el problema esta resuelto en la nueva versión 1.21 que ya esta disponible en el Live Gallery para descarga y actualización.
Si tienes un problema con el orden alfabético de las conexiones o algunas conexiones que al seleccionarlas se lanza una distinta, esta versión lo corrige.

jueves, 3 de julio de 2008

Planes para Delphi.Net

¡Al fin tenemos noticias sobre los planes para Delphi sobre .Net! y coincido con Marco Cantú con que son mucho mejores de lo que en lo personal esperaba.

Hasta ahora y desde el primer momento que Borland/CodeGear pensaron en soportar .Net, se han hecho esfuerzos descomunales por darle compatibilidad a Delphi nativo y Delphi.Net, es decir, tratar de crear compatibilidad de código entre aplicaciones hechas en distintas plataformas.

El problema por supuesto es que .Net tiene ventajas que no son viables en un ambiente no administrado (digamos, que no corre en una máquina virtual), y a su vez el código nativo tiene otras ventajas que se pueden aprovechar y que se terminan perdiendo por la filosofía misma de las aplicaciones .net.

Total, que llega el momento en que no es posible para nadie seguir con las todas las innovaciones de cada plataforma y al mismo tiempo tratar de transportarlas a la compatibilidad entre ellas, sin mencionar que algunas son completamente contradictorias entre ellas, o habría que estar rescribiendo toda la plataforma una y otra vez.

La nueva directriz de Embarcadero/CodeGear en lo que respecta a Delphi.Net (en la que tienen ya un buen avance al parecer) consiste en enfocar sus esfuerzos en soportar las innovaciones de .Net (ejemplo: SilverLight, WPF, etc.) y soporte para algunas utilidades y proyectos open source que están revolucionando el panorama del framework (¿subsonic? ¿spring? ¿nHibernate? ya sabremos...).

Espero además que CodeGear, siguiendo la tradición y filosofía con la que Borland creo Delphi y que han tratado de conservar como ventaja competitiva, nos ofrezcan clases y componentes que faciliten aun mas el desarrollo con esas mismas tecnologías.

Concluyendo, para los que pensaban o temíamos que .Net seria abandonado o relegado en RAD Studio, esto es la respuesta hasta ahora: Delphi.Net esta por ver sus mejores tiempos.

Tengo hasta la fecha ya tres aplicaciones hechas con Delphi.Net en ASP.NET y desarrollarlas ha sido una sorprendente experiencia positiva, sin mencionar su mantenimiento y evolución, así que por supuesto, estas son excelentes noticias para mi y para quien ya tenga algo hecho o pensaba en hacer algo serio con .Net sin perder su experiencia de Delphi y su IDE.

miércoles, 2 de julio de 2008

Gadget Conexiones RDP Actualizado

Acabo de actualizar mi gadget de conexiones RDP (Microsoft Terminal Server) y ya esta aprobado en Live Gallery.

La nueva versión 1.2 del gadget incluye:

  • Ordenación alfabética vertical de las conexiones
  • Etiquetas de nombre de la conexión sin la extensión (.rdp) en caso de que el usuario tenga desactivada la opción del sistema "Ocultar extensiones para tipos de archivo conocido". conexrdp
  • Soporte para el modo consola de la versión del cliente de terminal que viene con Vista SP1. En caso de detectar el SP1 el modo consola es activado de distinta manera que si Vista RTM.

Gracias una vez mas a Hector Barranco por hacerme notar el cambio en SP1 de Vista. Espero que les sirva a muchos y por supuesto ya saben que estoy abierto a cualquier comentario.

Actualizacion 6/jul: Descarga el gadget del Live Gallery

viernes, 30 de mayo de 2008

Una voz que alegra volver a escuchar y una voz atronadora que crece con paso firme: Carlos García y Al González

Carlos G ha estado muy activo últimamente y me alegra mucho. Sus comentarios variados y siempre bien interesantes ya hacían falta. Bienvenido de nuevo Carlos! way to go.

Por cierto, acabo de recibir la noticia de que el estimado Al González libero Magia Data. ¡Vaya framework que esta creando! Espero tener la oportunidad de probarla a la brevedad, tengo un par de fuentes muy confiables que lo han visto ya trabajar y las referencias no son menos que excelentes.

Saludos y felicidades a Al y a Carlos.

viernes, 9 de mayo de 2008

CodeGear y DatabaseGear

Como muchos, no he dejado de leer sobre el tema de la adquisición de CodeGear por parte de Embarcadero Technologies: blogs, newsgroups de la comunidad, noticias publicas, y cuanta fuente de información he tenido a la mano. No es que sea obsesivo , solo que es un tema que me interesa mucho.... :P

En fin, hasta ahora mi conclusión es, con el perdón de quien se ofenda por la expresión: ¡Que chingon! (que para ser mas internacional, tendría que decir ¡Super! o Cool!! )

Y son varias las razones, entre hechos y suposiciones:

  1. Emabarcadero Technologies parece ser una compañía seria. Su negocio no es hacer bases de datos, sino herramientas para desarrolladores de base de datos. No parece tenerle miedo a nadie en particular, ni parece estar casado con nadie en particular (y hablo de nadie).
  2. Embarcadero es una compañía que no teme innovar. Y parece tener una administración capaz de hacer decisiones TRASCENDENTALES bien pensadas. Eso no era precisamente la situación en Borland según vi los últimos años.
  3. Desde Enero de 2007, embarcadero tiene registrado el dominio DataBaseGear.com como lo muestra este registro de whois. Eso yo lo llamo estrategia. Se quedan con el nombre de CodeGear (eso parece ser un hecho) como su división de Herramientas de desarrollo... ¿y su herramientas de Base de Datos formaran su división DatabaseGear? (eso es una suposición mía)
  4. Embarcadero es una empresa privada (no tiene acciones por ahí volando), han comprado hasta a InstallShield, y tienen un buen de capital bien fundado y grandes planes de crecimiento que han demostrado en los últimos dos años y al parecer van por mas. Eso lo hace menos vulnerable y sinceramente, lo hace parecer mucho mas inteligente.

Falta mucho por saber y por quedar claro, pero hasta ahora puedo descansar sabiendo que esto no es "clipper reloaded" ni mucho menos por mas dramático que eso pueda sonar. Yo diría que esto no es una telenovela, y si lo es, parece ser un final feliz, y un gran principio directo hacia arriba, es mas, tengo una esperanza que siento bien fundada: Esto es muy probablemente lo que en la comunidad Delphi hemos estado esperando.

miércoles, 7 de mayo de 2008

Borland, Inprise, CodeGear, Embarcadero Delphi.

Borland vendió Delphi, C++ Builder, JBuilder, Interbase, 3rd Rail, Delphi para PHP y cualquier otro producto de su división de herramientas de desarrollo CodeGear al vender esta misma a Embarcadero Technologies.

¿Que sucederá?  ¿CodeGear llego a buen puerto?  ¿Nuestro Delphi naufraga, encalla o seguirá surcando los mares (y no me refiero a andar de empresa en empresa ;) ?  Existe una enorme discusión sobre el tema en los grupos de noticias de Delphi, por supuesto se esta armando un revuelo impresionante.

De lo que he leído y sabido hasta ahora, algo muy interesante que menciona el mismo David Intersimone es:

...We will work together to integrate Delphi and some of their tooling as well as create new products. Don't fear - EMBT is excited about Delphi big time.
Some of their developers learned programming on Turbo Pascal. They are all developers just as we are. Stay tuned for things we will do together. Delphi can use more database design, development, and optimization tooling. The combined company, technologies, and products will move Delphi's database capabilities forward much faster than on our own...

Así parece ser. Existen un montón de recursos y noticias flotando por ahí en la web. Hay que estar pendiente para saber que deciden al revisar las tecnologías y componer la estrategia en conjunto CodeGear-Embarcadero.

domingo, 27 de abril de 2008

Pascal Esencial

Aquí en México, y probablemente es lo mismo en otros países de Latinoamerica, ha existido un ENORME problema con el nivel de la educación en cuestiones de computación y programación (y en casi todo lo demás). Claro que esta no es noticia si tienes un rato en la industria o buscando empleo.

Uno de los comentarios mas comunes: "En la carrera universitaria solo me enseñaron a usar turbo pascal". ¡Esto se podría tomar como algo increíble cuando es todo lo que se les enseña a la próxima generación de programadores a estas alturas! ¿Que están tratando de hacer con nuestros países? ¿Mantenernos en el tercer mundo por siempre, acaso?

Es decir, esta Java, Delphi, C#, PHP, etc. que son referentes usados a nivel comercial y empresarial. Un graduado debería salir con un buen acervo, ya no uno, sino por lo menos dos lenguajes de diferentes estilos sin contar otros fundamentales como SQL y HTML, que les ayuden a salvar los muchos retos que se presenten (Bases de datos, Web, GUI, Modelado, tiempo real, etc.)

Delphi (siendo al fin y al cabo Pascal hiperevolucionado e hiperconstruido) es, en mi humilde opinión, uno de los mejores lenguajes, no solo para aprender a programar, también para crear cualquier tipo de aplicaciones y vencer incluso con excelencia casi cualquier reto profesional, pero para esto se debe comenzar por algo:

  1. aprender Pascal como fundamentos de programación,
  2. pasar a su evolución como Object Pascal para entender Programación Orientada a Objetos,
  3. seguir con el uso practico de las bibliotecas de funciones y objetos conocidas como frameworks: la VCL y el .NET,
  4. incluir en el momento adecuado el acceso a Base de Datos, y
  5. alternándolo con programación para Web (Stateless)

En diferentes momentos se debería apoyar el aprendizaje con SQL, HTML, JavaScript, XML, etc.

Hace tiempo que me ha llamado mucho la atención el bajísimo nivel al que llega la educación, limitándose a enseñar turbo pascal o java esencial y con solo eso lanzar al mundo a los nuevos "programadores", es como mandar a pelear a la tribu zulu de africa contra el ejercito norteamericano, por mas bravos que sean los zulus.

Por cierto Marco Cantu acaba de liberar su libro Essential Pascal para compra en lulu.com. Claro que el hecho que este en ingles no debería ser un obstáculo para ningún programador que se precie de serlo, pero por si las dudas, ¿Alguien que se anime a traducirlo?

lunes, 21 de abril de 2008

Ejemplos de la presentación de Multicapa con Delphi.Net

Ya están arriba (en CodeCentral ) los ejemplos de mi presentación de Developer Days 3 acerca del Desarrollo multicapa en Delphi.Net. Son tres ejemplos:

  • .Net Remoting
  • DataSet y DataTable a través de Web services ASP.NET
  • Cliente DataSnap de la VCL.Net

Pueden descargarlos de CodeGear CodeCentral:

http://cc.codegear.com/item/25545

Muchas gracias a todos los asistentes en Latinoamerica y España! y gracias a Andreano Lanusse y a CodeGear por invitarme a participar en el evento y ayudar a la comunidad.

Me imagino que muy pronto los tutoriales y presentaciones estaran en linea para quienes deseaban estar y no pudieron.

Developer Days en español 3 y algunas mejoras en el blog

Mil disculpas por todo este lapso de silencio! espero poder seguir el ritmo que tenia antes, ademas de un montón de trabajo muy interesante que he tenido este tiempo, pronto habrá un cambio radical en el blog con el que espero poder publicar mas contenido técnico y muchas cosas que ayuden mas. Es sorpresa, pero estoy seguro que valdrá la pena.

Y muy tarde para comentarlo, pero ya que estamos a medio evento en línea de la tercera edición de CodeGear Developer Days en español (21 y 22 de abril) acaba de terminar la presentación de Pablo Soligo donde hizo un carrito de compras con ECO y ASP.NET y fue excelente. Espero con interes la presentación de Juan Antonio Castillo (Jachguate) sobre aplicaciones Delphi multi-hilo que seguro será muy buena e igual la de Norberto Martinez sobre IBAdmin, y mientras ¡¡ tengo problemas con el Internet !!

Después de Jachguate seguirá una presentación de su servidor sobre Técnicas Multicapa con Delphi .Net incluyendo Remoting. Espero que les agrade y les sirva de verdad, si tienen cualquier comentario, por favor no duden en hacermelo llegar.

Si tienen duda con los horarios del evento (que están en tiempo de California), hace tiempo hice una tabla sobre las equivalencias para América Latina y la madre patria España.

Saludos de nuevo!

jueves, 28 de febrero de 2008

Delphi VCL es el ganador SG como mejor Librería/Framework

Alguna vez les he mencionado la maravilla que es la revista SG Software Guru. Desde mi punto de vista, la única publicación impresa (y web) de la industria del software en español que vale la pena leer de principio a fin trimestre tras trimestre (ahora es trimestral).

Esta revista mexicana, además de organizar un congreso sobre desarrollo de software cada año llamado SG conferencia y expo, ahora realiza una entrega de premios anuales a las mejores herramientas de desarrollo.

El premio se llama La Pila de Software Guru. Algunos de los ganadores este año:

Mejor herramienta de...

...GESTION DE REQUERIMIENTOS:  Rational RequisitePro
(seguida por Borland Caliber)

...IDE (Ambiente Integrado de Desarrollo): Visual Studio 2005
(seguido por Eclipse y seguido muy de cerca por Delphi 2007 para win32 en tercer lugar)

...CONTROL DE VERSIONES:   Rational ClearCase
(seguido por Borland StarTeam y despues Subversion en tercer lugar)

...LIBRERIA O FRAMEWORK:   Delphi VCL
(Seguido de Apache Commons)

...SISTEMA OPERATIVO:   Windows 2003
(los siguientes fueron RedHat Linux, Solaris, SUSE Linux y Debian) Al parecer sumando los votos de las tres plataformas Linux (RedHat, SUSE y Debian), Linux supero a Windows 2003.

...PORTAL PARA DESARROLLADORES:   MSDN
(y java.net)

...PORTAL PARA DESARROLLADORES EN ESPAÑOL:  Club Delphi


¡Felicidades a todos los ganadores!

En lo particular especialmente felicito al equipo de desarrollo de la VCL de Delphi en CodeGear y a toda la comunidad Club Delphi por recibir tal reconocimiento, ¡por cierto bien merecido!

En el sitio de la revista (www.sg.com.mx) Se puede leer la introducción a los premios y el resumen de los ganadores además de los premios para Gurus y premios para Libros y Mas en donde esta el de la comunidad.

Con los cambios que vivimos en la industria, Todo puede pasar para el próximo año.

martes, 19 de febrero de 2008

Dime en que programas... :P

Me he dado cuenta, como muchos antes de mi, que la herramienta se convierte en uno. Parece que en algún momento perdemos la capacidad de ver cual es nuestro negocio como desarrolladores: tener la capacidad de analizar, diseñar y programar un sistema nos envuelve y creemos que ese es nuestro negocio.

Nuestro negocio debería ser vender esos sistemas, aplicarlos en forma practica, buscar alternativas de mercado.

Pero, ¡peor aun! y ese es el punto: Nos convertimos en la herramienta que usamos.

No me malentiendan por favor, Delphi es la gran herramienta que me lleva a lograr mi trabajo con precisión, rapidez y poder y quien lea regularmente este blog sabe que me siento afortunado de no ser de los "desarrolladores" que se van con la primer luz que se les para enfrente.

Sin embargo, Delphi no deja de ser una herramienta. Un herramienta que sirve para desarrollar. Creo firmemente que nadie en sus cabales debe de atar su destino a un producto.

De repente hay quienes se han especializado tanto en una herramienta, una plataforma o un proyecto en particular, que terminan perdiendo el punto por completo. Si la herramienta pasa por un etapa de transición como lo hizo Delphi hace un par de años, entonces sienten pasos en la azotea: temen perder su poder para hacer lo que han venido haciendo.

Hay quienes huyen, hay quienes convierten en un culto, casi religioso, la veneración a su plataforma o herramienta. Esto no solo sucede en esta industria, si no en cualquier área del desarrollo humano, por ejemplo, hay médicos que defienden la alopatía o la homeopatía por ser la forma que conocen, no necesariamente la mejor, por que es el camino que escogieron y sienten que no hay vuelta atrás.

En lo particular uso Delphi por que me proporciona lo mejor de todos los mundos hasta ahora. El futuro lo dirá, Delphi actualmente como TODOS los demás lenguajes hasta donde se, están seriamente limitados en tres aspectos del futuro de la computación:

  • código de 64 bits
  • Aprovechamiento de los procesadores de mas de un núcleo (paralell processing si quieren verlo así)
  • Programación de dispositivos móviles

Y el mundo esta ahí o se dirige hacia allá con pasos firmes. CodeGear/Delphi esta haciendo su mejor esfuerzo y yo creo que lleva las de ganar al quedarse con la plataforma nativa, sin embargo todo esta por verse.

No perdamos el punto. Como me dijo mi buen amigo Ramiro Corona: "nosotros debemos estar mas allá del bien y el mal".

miércoles, 13 de febrero de 2008

Opinión sobre el futuro de Delphi

Si desarrollas en Delphi y te interesa lo que haces, cualquiera que sea tu opinión sobre el futuro del desarrollo, yo creo que es muy importante que se tome en cuenta tu punto de vista, tu situación actual, tus deseos y tus inquietudes, como parte de la comunidad Delphi en español.

La mejor oportunidad que tendremos para eso es dedicar un tiempo (a mi me tomó alrededor de una hora con pausas) para llenar con toda sinceridad la Encuesta Delphi 2008 de CodeGear. Es como votar, si no votamos mejor no nos quejamos :-$

Claro que hay una pregunta sobre el País en el que estas, e incluso hay una pregunta sobre el precio que me parece justo a pagar por la nueva versión/actualización de Delphi.

martes, 5 de febrero de 2008

70,000 PCs para Linux

Solo un pequeño comentario-paréntesis:

La policía francesa ha decidido migrar sus 70,000 computadoras para que usen ubuntu linux.

Ellos han usado OpenOffice en lugar de MS Office desde hace dos años y FireFox en lugar de IE desde hace un año.

Se puede leer la noticia en DiarioTI en:
http://www.diarioti.com/gate/n.php?id=16548

¿Será que esto es un pequeño paso para el policía francés, pero una tendencia para la industria del software?

P.D. Felicidades a CodeGear por el millón de licencias académicas de Delphi vendidas a Rusia. Eso es lo que llamamos "Fertilizar el mercado".

Tomen eso autoridades de educación latinoamericanas, ahora competiremos en serio con India, China, Brasil, Polonia, Irlanda y por si fuera poco, Rusia. Se me van poniendo las pilas, no quiero ni pienso redefinir el termino tercer mundo.

martes, 29 de enero de 2008

Nuevo en Delphi #2: Sobrecarga de operadores

Esta característica, aunque no añade funcionalidad, es simple pero poderosa en la legibilidad del código. La sobrecarga de operadores solo funciona en Records en Delphi win32 y para Records y Classes en Delphi.Net.

La sobrecarga de operadores consiste en poder definir un metodo de clase declarado como class operator, que se ejecuta cuando se utiliza dicho operador con ciertas clases como operandos, es decir que si definimos:

var
TTequila
= record
public
VolumenMiliLitros: integer;
GradoAlcohol: Single;
class operator Add(
TeqA, TeqB: TTequila): TTequila;
class operator GreaterThan(
TeqA, TeqB: TTequila): Boolean;
end;

class operator TTequila.Add(
TeqA, TeqB: TTequila): TTequila;
var
porcentAEnMezcla, porcentBEnMezcla: single;
begin
// Al mezclar (sumar) dos tequilas se obtiene
// la suma de su volumen liquido...
Result.VolumenMiliLitros :=
TeqA.VolumenMiliLitros
+TeqBVolumenMiliLitros;
// ...pero se promediaria su grado de alcohol
// en proporcion al volumen (en teoria)
porcentAEnMezcla :=
TeqA.VolumenMiliLitros
/Result.VolumenMiliLitros;
porcentBEnMezcla :
=
TeqB.VolumenMiliLitros
/Result.VolumenMiliLitros;
Result.GradoAlcohol :
=
(TeqA.GradoAlcohol
* porcentAEnMezcla) +
(TeqB.GradoAlcohol
* porcentBEnMezcla);
end;

class operator TTequila.GreaterThan(
TeqA, TeqB: TTequila): Boolean;
begin
if TeqA.GradoAlcohol > TeqB.GradoDeAlcohol then
Result :
= True
else
Result :
= False;
// Tambien podria ser:
// Result := (
// TeqA.GradoDeAlcohol > TeqB.GradoDeAlcohol);
end;


Entonces cuando tuvieramos algo como esto:


var
Jimador, Cazadores: TTequila;
MezclaChafa: TTequila;

begin
Jimador.VolumenMiliLitros :
= 750;
Jimador.GradoDeAlcohol :
= 30;

Cazadores.VolumenMiliLitros :
= 1000;
Cazadores.GradoDeAlcohol :
= 36;

if Cazadores > Jimador then
begin
MezclaChafa :
= Jimador + Cazadores
end
else
begin
MezclaChafa.VolumenMiliLitros :
= 0;
MezclaChafa.GradoDeAlcohol :
= 0;
end;

WriteLn(
'Mezclado ');
WriteLn(
'Volumen: ',
IntToStr(MezclaChafa.VolumenMiliLitros));
WriteLn(
'Grado De Alcohol: ',
FloatToStr(MezclaChafa.GradoDeAlcohol));
end;


El resultado seria:


Mezclado
Volumen: 1750
Grado De Alcohol: 33.4285


Ya que el operador Mayor Que > (GreaterThan) fue sobrecargado para que cuando se desea saber si un TTequila es mayor que otro TTequila (los dos parámetros del operator son TTequila) entonces devuelve Verdadero si el primer TTequila tiene un GradoAlcohol mayor que el otro.


De igual manera, el operador Adición, o Suma + (Add) fue sobrecargado para que cuando se "suman" dos TTequila, el resultado sea otro TTequila con la suma de los volumenes y el proporcional del grado de alcohol de cada uno según el volumen que aportan.


NOTA IMPORTANTE: Otra relativamente "reciente" característica de Delphi es precisamente que los tipos record pueden tener métodos como las clases, con la diferencia que los record son pasados por valor (una copia de ellos) y las clases por referencia (una copia del apuntador hacia la clase).

lunes, 14 de enero de 2008

Nuevo en Delphi #1: Datos de Clase

Primero, una disculpa por esperar tanto para comenzar con la serie de Lo nuevo en Delphi, esta semana pasada fueron días interesantes en los proyectos y el tiempo fue lo primero que se acaba.

Quiero empezar a mencionar las nuevas características de Delphi, abarcando 2006 y 2007, ya que muchas de estas se iniciaron en Delphi 2006 pero se consolidaron en Delphi 2007. El objetivo es analizarlas, saber que tan útiles podrían ser y en donde aplicarían.

Una de las que mas me llamo la atención de inicio son los datos de clase (o Class Data).

Tener datos de clase consiste en tener variables que existen desde que la clase existe (no por objeto o instancia de la clase). Hasta ahora Delphi contaba solo con Métodos de clase.

Los campos/datos/variables de clase pueden ser accesados por todos los objetos de esa clase y pueden ser declarados con los mismos restrictores de acceso (private, public, protected, etc.) de los datos de objeto.

Estos datos compartidos por todas las instancias de una clase son parte de la sintaxis de muchos otros lenguajes pero mas que nada es una técnica cercana de Programación orientada a objetos (POO). Puede usarse, por ejemplo, para controlar datos variables entre muchos threads de cierta clase o heredadas de la misma clase, semáforos, o conteo de instancias y muchas otras cosas.

Claro que podemos usar variables globales para eso desde siempre. Aun así, esta nueva forma del lenguaje hace el código mas legible y mejora la estructura ya que la variable tiene relación explicita directa con la clase. Al final, la ventajas de esta nueva característica es hacer el código Delphi win32 mas cercano al de Delphi.Net, además de acercarnos a una mejor estructura de POO.

La forma de declarar variables de clase es usando la sección opcional class var en loa declaración de la clase. Un ejemplo podría ser el siguiente:

TCualquierClase = class
private
FiDato: integer;
FsNombre: string;
class var
Control: integer;
//Dato de clase
OtroDato: TStringList; //Otro dato de clase
public
Nombre: string;
...
end;


En este caso, el valor de Control y OtroDato serán datos compartidos por todas las instancias de TCualquierClase mientras que FiDato, FsNombre y Nombre son datos particulares de cada instancia.



En un futuro (yo espero y ruego) mediante esta característica también seria mas fácil y claro implementar soporte multihilo (multithread-safe) en todo el lenguaje y la VCL, así como tiene actualmente Java en su respectiva, pero sin que sea necesario correr los programas dentro de un ambiente "controlado" y restringido como la máquina virtual.

jueves, 3 de enero de 2008

¡¡ Lo nuevo en Delphi 2007 !! ;)

CodeGear ha estado muy ocupado últimamente haciendo un gran hincapié en "las nuevas características de Delphi en Delphi 2007".

La comunidad internacional, y me refiero a Europa, EUA y quienes ya pudieron acceder a Delphi 2006 o 2007, han tenido diversas reacciones a estas características, en algunos casos tratando de englobarlas de dos maneras: Por un lado algunos opinan que "llevan a Delphi al nuevo siglo" o algo así, mientras que otros concluyen que "son características innecesarias que agregaron solo por que otros lenguajes las tienen y muchos las querían ver en Delphi para no sentirse atrasados". Cualquier polémica por mas ligera que sea, genera alguna opinión radical contrastante.

Voy a comentar algunas de esas características aquí en el blog en los siguientes días, sobre todo las adiciones al lenguaje que son las que mas me han llamado la atención, y de esa manera podemos hacernos una opinión mas concreta.