viernes, 11 de marzo de 2011

¿Por qué SÍ a GeneXus X Evolution 2?

Relato

Luego de otro duro día de trabajo en la ferretería, Hugo se hallaba cómodamente apoltronado en su insustituible sillón hojeando las páginas de un periódico ya algo arrugado por el uso, pues si bien era el del día, su octogenario padre y su esposa ya lo habían leído, releído y manoseado a lo largo del día. De pronto sintió la voz de Javier, su hijo mayor de 15 años, que venía a paso rápido a su encuentro, seguido por su amigo de la barra, Miguel.

- ¡Papá, papá! Mira lo que tengo acá. Es de Miguel... ¡mira!

Hugo continuó con su lectura ávida. Buscaba en el periódico una solución al problema que tenía no solo con la distribución de materiales a sus clientes del sector "Materiales Eléctricos" de su PYME, sino también con la forma en que sus vendedores recopilaban los pedidos de aquellos. Era una tarea instrumentada en forma relativamente moderna: la docena de vendedores que hacían sus rondas diarias en diferentes radios de la ciudad capturaban los pedidos en máquinas POS, luego imprimían un tiquet en la lenta miniimpresora de la van y, por último, al final de la jornada, descargaban la información en el servidor central de la empresa; luego, a la tarde-noche, el software del servidor procesaba esa información y se imprimían las notas de pedidos las cuales llegaban a la mañana al personal de stock quienes aceptaban o rechazaban los ítems, según la disponibilidad de stock. Todo parecía aceitado, pero no era tal. Tenía la dificultad de que sus vendedores tomaban los pedidos sin conocer las existencias de los productos solicitados, los que muchas veces no estaban disponibles al momento del procesamiento, pues, varios de ellos ya habían vendido varias veces las disponibilidades existentes en el almacén de la empresa. Al otro día, más allá de que se enteraban de que no habían bombillas suficientes, o enchufes de cierta prestación, tenían que llamar a sus respectivos clientes y decirles que no había stock, que pronto la habría. La acción de esos clientes era obvia: por simple reacción, al otro día buscaban otro proveedor que sí les proporcionara el material urgentemente necesario. Menudo problema: ese "hueco" en su sistema alimentaba indirectamente a la competencia, que no sabía cómo últimamente estaba quedándose con parte de su mercado, en todas las zonas que él mismo atendía.

Hugo giró hacia su hijo que le mostraba en la mano un SD semejante al que él mismo tenía: era un Blackberry de última generación.

- Javi, tengo uno parecido. ¿Qué tiene de raro?

- Sí, ¡pero mira!, el padre de Miguel tiene una barraca... y me mostró esto... mira...

Javier golpeó levemente con el pulgar sobre un ícono de la pantalla y apareció una ventana que pedía Usuario y Contraseña.

- Miguel, esto te toca a vos...

Miguel tomó el SD y escribió los datos que se pedían. En seguida apareció un menú con distintas opciones, todas ellas acompañadas por una simpática imagen que representaba su función: Ventas del día, Disponibilidades, Artículos con existencias, Artículos sin existencias, etc.

Algo sorprendido, Hugo volvió a calzarse los lentes y miró con detenimiento.

- ¿Qué es esto, Miguel?

- Es el sistema que usa mi padre para chequear su negocio. De aquí controla las ventas, consulta los pedidos de sus vendedores... bueno, usted sabe...

- ¿Tu papá controla todo desde acá? -preguntó ya incorporándose en el sillón.

- Sí, señor. Anda todo el día con su SD encima, pero este es mío, solo que tengo el programa que él usa instalado. Me lo puso para que yo me vaya acostumbrando a su uso... shhh, no diga nada, pero creo que en un par de años yo también trabajaré en esto.

Hugo sintió un cosquilleo en sus entrañas.

- ¿Controla desde aquí su empresa?

- Bueno, en la empresa tiene el software de procesamiento principal; en realidad, desde acá sus vendedores mandan en tiempo real la info al servidor de la empresa que la procesa y a la tarde del mismo día, o a más tardar a la mañana del otro día, el camión sale a distribuir el material... Sí, le va muy bien por suerte.

Hugo estaba sorprendido. Con un ágil movimiento disparó el periódico hacia cualquier lado. "¡Esto es lo que estoy necesitando!" se dijo, abrumado por lo que veía.

- Miguel, ¿qué es esto que muestras? Parece un programa de medida para una empresa, pero un SD en vez de en un PC.

- Sí, claro. Mi papá contrató alguien que le hizo esto.

- ¡Uff! Le debe haber costado una fortuna desarrollarlo. No cualquiera tiene un sistema propio para SD. Hay que programar, seguramente en Java, o en .Net... es complicado, ¿no?

- No, para nada.

- Bueno, sí, pero me imagino que cada vendedor tiene que tener un SD, y estos pueden ser variados... quizá Blackberry, quizá Android, como el que tengo yo, o incluso de Apple... Miguel, ¿cuántos programadores contrató tu padre para hacer esto? Le debe haber salido una fortuna en mano de obra...

- No, para nada. Tiene uno solo. Es mi primo, de dieciocho años, y que es Analista GeneXus.

- ¿Analista GeneXus? Pero hasta donde yo sé, GeneXus no tiene nada que ver con Apple, Android, Blackberry..

- No, señor, directamente tiene poco que ver con ellos, pero ocurre que GeneXus está generando aplicaciones para SD sin importar cuál es la marca del dispositivo. De hecho, tenemos vendedores que tienen Blackberry, Android y iPad, los tres más populares hoy por hoy; no es problema... eso es lo bueno.

Apabullado por lo que le contaba Miguel, Hugo escudriñó en las diferentes opciones que mostraba la pantalla: se veían los nombres de los vendedores, los circuitos asignados, los... productos que vendía... ¡los productos que vendía el padre Miguel...! -hasta que cayó en el asombro total.

- Miguel, Miguel, ¿a qué se dedica tu papá?

- Vende materiales eléctricos, señor...



En el ambiente de desarrollo informático de hoy, año 2011, llámesele Software Houses, o desarrolladores independientes, incluso en el más elemental, el de los usuarios de los sistemas que aquellos desarrollan, es casi que imposible no conocer acerca del universo de aplicaciones que corren en dispositivos móviles inteligentes, más conocidos como smart devices (SD).

En defintiva

Este relato bien podía ser real, aunque obviamente es una ficción. No obstante, la versión Evolution 2 de GeneXus, ¡hoy, ya!, permite lograr justamente eso, lo que se cuenta en el relato.

Ustedes, amigos de la Comunidad, podrán en forma rápida generar aplicaciones para la nueva generación de dispositivos móviles que hoy invaden el mundo. Y los más importante, la totalidad de ellos, hoy, se marcan básicamente en tres diferentes sistemas operativos nativos: el popular Android de Google, quienes muchos los auguran como el futuro incluso sobre PCs, el popular iOS de Apple, quienes muchos otros no abandonarán, no solo por ductilidad y fidelidad sino confianza en la "vieja" compañía de Steve Jobs, y a los amantes del también poderoso Blackberry, cuya ductilidad está fuera de discusiones. Estas son las tres plataformas para las cuales GeneXus X Evolution 2 genera, hoy, aplicaciones tan solo básicas por delimitaciones de la arquitectura de cada plataforma; con esto quiero decir, si la plataforma aspira a más, GeneXus también lo hará posible; GeneXus va detrás de lo que la plataforma permita: no hay límites.

Cuando en el relato anterior Miguel le cuenta a Hugo que han generado para distintos dispositivos, de marcas distintas, es porque GeneXus genera, para todas esas plataformas distintos programas que son transparentes al equipo de desarrollo; ellos simplemente determinan el target (Android, Blackberry e iOS) y GeneXus se encarga del resto. ¿Existe algo mejor que esto? ¿Usted se animaría a reunir a un grupo de desarrolladores para iOS, otro para Android y otro para Blackberry? Bueno, si me dice que sí, programar nativo para cada uno, usted tiene mucho dinero para disponer y gastar. Pero con GeneXus eso no corre: con un solo desarrollador soluciona para todas las plataformas.

Buena suerte, y enjoy!



lunes, 24 de enero de 2011

Por qué elegí un LIfan 320 y no el nuevo Gol Trendline


Cuando un conocido me dijo, en abril de 2009, que fuera a ver un precioso auto de altas prestaciones (después cuento qué es esto) en una automotora adyacente a Gral.Flores casi el monumento al ejército, me sentí entusiasmado. Me contó de sus prestaciones y cuando le pregunté el precio (confiaba en que me hablaba de uno que sobrepasaría ampliamente los 20.000 dólares), no me lo dijo, y le pregunté el origen: "chino" me contestó, "pero mirá que está bárbaro, andá a verlo y después me decís del precio que te digan". "¿Chino?" Ahí mi entusiasmo se vino al suelo. Entré a mirarlo por internet y me encontré un vehículo muy semejante al Mini Cooper de BMW, ese que cuesta, el setup básico, 45.000.


Tanto insistió (mi esposa también, pues queríamos cambiar, luego de 15 años, el Gol 1.8 de 101 HP), así que fuimos. Quedé gratamente impresionado. Sus formas eran de joyita, Azul con techo blanco. Me senté en su interior, lo encendí, y me impresionó el simple pero brillante salpicadero, con instrumentos digitales donde, en poquísimo espacio, bien aprovechado y diseñado, reunía hasta tacómetro. El vendedor sólo me hablaba maravillas de él: doble airbag, doble árbol de levas (conocido también como Twin Cam), llantas de aleación, frenos ABS/EBD (esto del EBD me mató, hay que ver lo que representa en seguridad), doble juego de luces traseras antiniebla, cierre automático de puertas a los 20 segundos, que se desbloquearían ante un impacto para un escape rápido, barra de dirección con absorción ante choque frontal, luces camineras frontales, A/A ecológico, salida para MP4 (me extrañó que no tuviera pasa CD/DVD, pero eso poco me preocupaba), motor de licencia Toyota 1.300cc de 16 válvulas, llantas de 14" (esto también me impresionó, el Gol tenía 13", y siempre me gustó un rodado 14" o más), y algún otro etcétera, como el cierre de seguridad de puertas para niños, comando central del lado del conductor de los cuatro vidrios eléctricos, cinturones de tres puntas, cobertura techo interior cromatizado anticalor, pintura antisol, bloqueo centralizado a distancia automático, inmovilizador electrónico (te lo afanan si pueden), etc.

"Me gusta" le dije. Para convencerme un poco más, me dijo "Por favor, pruebe el cerrado de puertas". Así lo hice. Abrí una de las puertas traseras (era 4 puertas), la cerré, y el sonido sonó mucho más sólido que el del Gol, semejante al de un auto "en serio" (recuerdo que un compañero había comprado hacía poco un Saxo de Citroen, y cuando cerrabas la puerta sonaba literalmente a lata).

"Ahora abramos el capó" me dijo, "luego mire el motor, y luego sienta el ruido al cerrarlo". Nuevamente accedí (estaba mirando después de todo). Quedé impresionado de ver ese prolijo motor y el mismo sonido cuando el hombre soltó el capó para cerrarlo: sólido, pesado, firme.

Mi esposa supo leer un "sí" en mi mirada. "¿Cuál es el precio?". Llegó el momento. "Bueno, este es el modelo "Elite", extrafull y cuesta 13.500, pero le advierto, dentro de un mes va a salir un poco más, al menos 1.000 más".

Finalmente nos fuimos, con ganas. El precio era accesible por nosotros, pero aquello de que era chino, me rechinaba un poco. Mi esposa hubiera querido que lo señara enseguida, pero mi orgullo ante un 1.300 frente a un 1.800 de gran potencia, como el Gol, me echaron atrás con precaución.

No obstante, cuando nos íbamos, miré al Gol (era como un amigo, lo miré a los "ojos", al salpicadero), y le dije, "Amigo, creo que queda poco de nuestra amistad". Igual, pasarían 12 meses donde finalmente tomamos la decisión: compramos el Lifan 320, soportado por las noticias de que pronto se armaría en Uruguay (más aún, poco tiempo después, el Grupo Aler, su representante, cerró convenio con Cymaco Repuestos para el soporte permanente de repuestos). Sumado a ello, 3 años de garantía o 70.000 kms. no era poco.

Hoy, con 12.500 kmts. (esperé temeroso un tiempo prudencial para escribir esto), estamos muy conformes con esta joya de la automotora china. Aún no tiene un solo ruido de carrocería (vale decir que cumplí todas las exigencias de la garantía en cuanto a servicios), y la gráfica de consumo que llevo en Excel me sigue dando unos 15 kmts/lt., e incluso llegó a dar 19 ktms/lt. En resumen, una maravilla.

También es cierto que no tiene "el pique" que tenía el Gol (en realidad, el pique del Gol 1.8 a inyección o no-inyección es inconmensurable, comparado incluso con marcas de mayor porte), aunque devuelve 89 Hp, pero a 6.000/rpm, cosa a la cual nunca (espero) tener que exigirlo. La velocidad ya partió de mi mente (al Gol le hice dar 190 kms/hora, ¡una locura que nunca más repetiría!).

A quienes tengan dudas o temor sobre el Lifan 320, no lo duden, no lo defraudará. Solo el plazo de la garantía o el kilometraje lo justifican.

Ahora, el por qué de la otra parte del título de esta columna: ¿Por qué no el Gol Trendline? ¿Recuerdan el aviso en TV donde Silvester Stallone se baja de un Gol Trendline luego de un acto acrobático de escape? ¿No? Bueno, yo sí, y me había enamorado de ese Gol. Siempre fui fanático de Gol, y había tenido un cero kilómetro del modelo 93, generación II. Pero el Gol nuevo: ¿Prestaciones? 30% menor al Lifan 320: airbags, no; barra de dirección amortizable ante impacto, no; cierre automático, no; ABS, sí, pero complemento EBD (importantísimo), no; luces antiniebla traseras, no; llantas de aleación, sí; rodado 14", sí; A/A eco, sí; posacabezas traseros, no; salida Mp4, no). ¿Precio? ¡7.550 de diferencia! ¡Chau Gol, I'm sorry.

Entonces, saquemos la siguiente conclusión: ¿cómo un auto de más (bastantes más) prestaciones puede ser 7.550 dólares más barato que otro? ¿Cuál es el secreto? Esto es simple: competencia. Y esto lleva a una única conclusión: alguien te está afanando, en este caso VW, y lo mismo hace GM, etc.

Finalmente, me enteré que el verdadero Trendline, el del aviso del viejo musculoso, viene con todos los chiches y más, pero en Brasil, y acá representaría un precio exorbitante, cercano a los 30.000. Por ese precio, compro otra cosa, quizá una pequeña casita en Playa Verde.

Fui a hacerle el mantenimiento de los 10.000 kmtrs al Grupo Aler. Cuando lo fui a buscar, el jefe de planta, Marcelo, me preguntó: "¿Cómo le va con el Lifan?". Lo miré con una sonrisa en los labios: "Estoy enamorado de este auto. De paso ¿cuánto salió el service total que le hicieron?". "Bueno, cambio de filtros, apretado total, repaso de burletes, sincronización de luces, setup del sistema operativo en la compu, verificación de...?" "Okay, okay, ¿Cuánto?" le insistí sacando tembloroso la chequera. "1.940 pesos, total". ¡Amo al Lifan 320!

Nos vemos en otro post.

miércoles, 12 de enero de 2011

El testing es (fue) un dolor de cabeza

Era obvio que no me lo podía sacar de la cabeza. Como desarrollador en Cobol, Delphi, C, GeneXus, y no sé qué más, me aturdía la tarea de testeo de mis propias aplicaciones. Siempre soñaba con que yo programaba y otro(s) chequeaba(n), pero nunca era posible. Recuerdo cuando trabajaba para una empresa de primer nivel (Nuvó Cosméticos), se me asignó la tarea de desarrollar el módulo de stock. Era maravilloso escribir código y diseñar pantallas, pero cuando llegaba "aquel momento" en que debía probar más allá de las mínimas, me daba escozor. De hecho, no quería hacerlo, quería que alguien me dijera "Yo te hago las pruebas".

Me imagino que a todos los desarrolladores les debe pasar lo mismo; de hecho les pasa por lo que hablo con ellos cada tanto cuando me los encuentro. El testing siempre es un clavo en el zapato. Afortunadamente, aparecieron con el tiempo herramientas que "más o menos" nos proporcionaron "algo" para hacer los testings (Selenium, por ejemplo) un poco más automatizados, pero sólo un poco.

Cuando escribía aplicaciones en Cobol o en el puro "C", no tenía más remedio que hacer las pruebas yo mismo, solito, consumiéndome horas-hombre costosísimas. Incluso desarrollando en GeneXus 8 y 9, me las veía bravas; tenía que diseñar y probar al mismo tiempo. Esto me tenía los huevos llenos.

Aforrtunadamente, para los desarrolladores con GeneXus, hoy disponemos de una herramienta sustancial para nuestros requerimientos de testing: GXtest. GXtest está evolucionando día a día, haciendo que la engorrosa tarea, que nunca queremos enfrentar, nos lo haga enfrentar. Es automática, podemos meterle test cases, data pools con la info que el usuario final va a meter y a equivocarse, etc.

Esta noche duermo más tranquilo. Mañana no tengo que madrugar para meter datos para ver qué pasó. El monitor de GXtest me lo va a decir.

Cambio y fuera.