lunes, 28 de julio de 2008

Libro electrónico

los programadores necesitamos los manuales de las plataformas con las que trabajamos. En este momento tengo sobre mi en mi escritorio manuales impresos de JfreeChart, Groovy, Grails, Mondrian, JavaScript, CSS, iReports y Netbeans 6, y de ellos he alcanzado a leer al menos la mitad, conforme necesite más conocimiento. De Grovy y Grails tengo 4 manuales que los he leido casi integramente, al igual que los dos de ireport y JasperReport. Del manual de Java Script puedo decir que es el tercero que lo leo desde 1997. Lo más importante es que todos esos manuales son actuales, casi salidos del horno, cuya versiones electrónicas en PDF -salvo el manual de mondrian- los adquirí en una de mis cuatro portales favoritos: apress.com, pragprog.com, manning.com y oreilly.com.

Posiblemente los mejores libros en TI sean aquellos de O'reilly, pero solamente unos pocos de ellos están disponibles en formato electrónico ya que dicha empresa prioriza el servicio en linea Safari que en base a una cuota mensual o anual (la menor es de US$28 mensulaes) tiene acceso a cierta cantidad de libros (mínimo 10) cada mes. Estube suscrito a este servicio por dos años y finalmente debo decir que no me convence: el dia que apress, manning y pragmatic programmer incluyan sus libros en ese servicio entonces valdrá la pena, mientras tanto debe valerse con las publicaciones de O´reilly, Oracle, Microsoft, etc. Es decir está más lejos de programadores que juegan en las canchas del código abierto y libre.

apress.com, es mi portal favorito a la hora de buscar publicaciones en mis plataformas de trabajo: Java, Groovy, Grails, JavaScript, etc. Los libros son actuales, y apenas son publicados es posible que ponga la version electrónica a disponibilidad.

pragprog.com.com, sus publicaciones siguen fielmente una estrategia, dar visiones concretas y pragmaticas sobre determinadas tecnologías a los lectores. Es posible que la lectura entera de uno de sus libres lo deje productivo y motivado en temas como Ajax en menos de una semana, pero no lo convierte en experto, pero si lo suficientemente motivado para querer leer un libro de manning.com que en cambio si ofrece mayor nivel de profundidad.

viernes, 25 de abril de 2008

Mi selección de tecnología

Casi todo es Java:

  1. Linux OpenSUSE 10.3, sistema operativoBuen soporte para MySql, Java 1.5/1.6 y Mono.Net
  2. OOCalc, hojas electrónica.- La principal herramienta de análisis numérico para los expertos
  3. MySql 5.0, RDBMS.- Fue evaluada como la más veloz en comparación a Oracle 10g y Postgress 8.2
  4. Java 1.6, Plataforma de desarrollo.- Es el lenguaje de programación principalmente utiliza para el desarrollo de software, y también se refiere a la máquina virtual (JVM) sobre la que se ejecutan una serie de aplicaciones.
  5. C# Mono.Net, Plataforma de desarrollo.- Para mantenimiento de aplicaciones en C#
  6. PGI C/C++/Fortran, Compiladores.- Comercial, el más eficiente en el mercado.
  7. Grads, Visualizador Gráfico.
  8. Groovy, Scripting.- Es un lenguaje de programación dinámico, multiplataforma, que nos sirve para hacer análisis de bases de datos, así como prototipos rápidos de clases, pero fundamentalmente es la base del entorno de programación Web. Se ejecuta sobre la máquina virtual de Java 1.6 (JVM)
  9. Grails, Web programming framework .- Es un entorno de programación para aplicaciones WEB, sobre el que se está desarrollando la aplicación el sistema de alertas y monitoreo ambiental que anteriormente era una aplicación en Developer 2000 de Oracle. Este entorno funciona sobre la máquina virtual de Java JVM.
  10. HTML, JavaScript, CSS.
  11. JavaScript
  12. NetBeans 6.x, IDE.- Este es el principal entorno de programación multiplataforma, con capacidad de soportar los lenguajes y frameworks adoptados (Java, Groovy, Grails, CSS, JavaScript, JSP y JSF)
  13. JasperReports/iReports, Herramientas para Reportes.- Herramientas para elaboración de reportes con la capacidad de complementarse con Java 1.6, Groovy y Mondrian.
  14. Apache Tomcat, Servidor Web .- Solo para las pruebas
  15. Mondrian, Data Warehousing .- Data Warehousing engine basado en java, con conectividad JDBC. Mecanismos de consultas basados en el estándar MDX
  16. JPivot, Grails/JSP Tag.- Es un tag para páginas web basadas en JSP o Grails que presenta de modo dinámico las estructuras de cubos OLAP provenientes de fuentes Mondrian
  17. Diversas librerías Java, archivos jar.- Itext para manejo de archivos PDF desde Java, JfreeChart para la generación dinámica de gráficos estadísticos en Java y Grails.

Todo se conecta con todo, y todos tienen sus competidores legítimos: NetBenas vs. Eclipse, y así por el estilo. Hay un paquete comercial (los compiladores PGI C/C++/Fortran), lo escojo por ser bueno, definitivamente.

viernes, 18 de abril de 2008

Criterios para la adopción de tecnologías

Para la adopción de determinadas tecnologías de la información se debe mantener algunos criterios fundamentales, en mi experiencia y desde mi libertad los más importantes son:

  1. Sostenibilidad y escalabilidad de las herramientas en el tiempo.
  2. Lenguajes de programación altamente eficientes, multiplataforma, que trabajen sobre máquina virtual, con gran disponibilidad de librerías y frameworks especialmente para web, conectividad a una amplia gama de RDBMS, y fundamentalmente Orientado a Objeto y Orientado a Interfaces
  3. Entornos de programación (IDE) con capacidad de soportar todos los lenguajes adoptados
  4. Base de datos con libertad de conectividad, independientes de número de procesadores, cores o sockets/TCP
  5. Estas herramientas, especialmente el sistema operativo, los lenguajes de programación y la bases de datos, no deben ser ajenos a entornos de integración de aplicaciones.
  6. Sobre el entorno de Integración, se pretende un Bus de Servicios (ESB) que permita el mensajería, activación de aplicaciones, programación automática de tareas, generación de reportes de alarmas y actividades de comunicación, activación de transformación de datos, incluso sobre las aplicaciones ya existentes. El propósito es relegar la operación, administración y sincronización de las aplicaciones a un ESB
  7. Herramientas para datawarehousing: el criterio de evaluación de este tipo de herramientas se basa en la necesidad de transformar datos, hacia otra base de datos con una estructura que facilite la obtención de reportes (de los más exóticos) y “data mining”.
  8. Las herramientas de reportes no solamente deben facilitar la visualización de datos en forma jerárquica, también debe integrarse plenamente al IDE seleccionado, y aceptar conectividad a una amplia gama de fuentes: base de datos, datawarehousing. Los formatos de los documentos generados deben ser: CSV, PDF, HTML y otros.
  9. Sobre las librerías a ser adoptadas en base a los lenguajes seleccionados, éstas deben estar disponibles para su evaluación. Las librerías (y frameworks) tienen un propósito especial con el que se incorporan a las aplicaciones en lugar de programar, reduciendo la posibilidad de extender el código.

Ha sido importante que las aplicaciones seleccionadas tengan un buen nivel de aceptación en las corporaciones e instituciones a nivel mundial. También es importante garantizar un buen flujo de documentación oficial o por medio de editoriales (mejor si son tipo e-Book).

La "pregunta del millón": ¿es posible todo esto sobre la base de Open Source y/o Software Libre?.

miércoles, 5 de marzo de 2008

de bombardeos y discos duros

¿Realmente cree el presidente de Colombia Alvaro Uribe que puede someter un disco duro al escrutinio internacional para acusar al Presidente Rafael Correa de tener estrechas relaciones con la insurgencia colombiana sin la mínima tarea de contrastar la información con los hechos?.

Colombia bombardeó territorio ecuatoriano el pasado primero de marzo a pretexto de defenderse, pero mientras transcurren las horas se van aclarando lo ocurrido hasta comprobarse la masacre de insurgentes y el ultraje a la soberanía ecuatoriana. El presidente Correa reacciona y expulsa al embajador colombiano, el gobierno de Uribe responde presentando supuestas pruebas, almacenadas en un disco duro, de la estrecha relación del gobierno ecuatoriano con los insurgentes colombianos.

Los discos duros son como algunos medios que aguantan todo. Para los informáticos lo más importante es contrastar la información almacenada por nuestros sistemas con la realidad, por la simple y sencilla razón de que toda información almacenada es alterable al cien por ciento si una mano irresponsable lo quiere hacer (por ejemplo un hacker, un funcionario corrupto o un presidente tramposo). Someter un disco duro al análisis técnico internacional resulta inútil en este caso y por decir lo menos.

Contrastemos entonces la realidad del presidente Correa: a buscado desde el inicio de su gobierbo acercamientos con el gobierno de Alvaro Urive quien incluso estuvo presente en la inauguración de la Asamblea Constituyente en Montecristi. Ha sabido mantener bien definido y separado de otros aspectos bilaterales las consecuencias del otro bombardeo: el del glifosato. A seguido la tradición de mantenernos alejados del conflicto interno de Colombia. El presidente y el país entero está preocupado por las inundaciones en las provincias costeras. Otra preocupación nacional es el proceso de reformas que se cocina en Montecristi. El Departamento de Estado Norteamericano dice que Ecuador combate bien al narcotráfico que viene desde Colombia y Perú. También hemos visto al presidente Correa mejorando relaciones con países como Malasia, Indonesia y China con el objeto de abrir nuevos mercados.

¿Algo de esto consta en el disco duro o afecta a los Colombianos al punto en que podría acusarse al Presidente Correa de atentar contra la seguridad interna del vecino del norte de la misma manera que la maquinaria bélica bombardeó territorio ecuatoriano?

Para ser justos deberíamos contrastar la realidad del presidente Uribe que empieza por la sus contactos con los paramilitares y el “recordado” Pablito Escobar, pero eso le dejo a la propia prensa de Colombia. De lo que no cabe duda es su adicción al Power Point.

sábado, 1 de marzo de 2008

La estética del “Webmaster”

Siempre me fijo en los la estética de los portales web nacionales (de los de acá, de la República del Ecuador – que ya es de todos) y siempre me termino preguntando lo mismo: ¿Es que tal o cual empresa no tenían para pagar un buen diseñador gráfico, un buen fotógrafo? alguien que al menos sepa equilibrar colores, después de todo las artes en este país han sido bien cultivadas.

Tenemos buenos arquitectos, diseñadores industriales, expertos en calidad, procesos y las facultades de arquitectura han dado saltos al campo del diseño gráfico; entonces ¿por qué esos profesionales no participan a la hora de construir un portal web corporativo?

El caso más patético debe ser el del periódico HOY cuyo formato muy elegante en papel es similar al del periódico norteamericano USA TODAY, sin embargo la calidad del diseño de su portal deja mucho que desear.

Otros casos de ediciones digitales: la estructura del portal de El Comercio de Quito (http://www.elcomercio.com) es excelente pero su tonalidad azul celeste le hace muy monótono, mientras que el de Ecuador Inmediato me resulta de alto contraste. El portal de “La Hora” (http://www.lahora.com.ec) en cambio tiene un diseño muy ordinario. Aclaro que soy muy asiduo lector de dichos portales, me mantuvieron conectado al país durante muchos años que viví fuera.

Ni hablar de ciertos diseños corporativos que como “front page” colocan una pesada presentación en flash.

Como programador de aplicaciones de vez en cuando me toca hacer portales web y los resultados estéticos sueles ser deplorables aunque siempre me preocupo de lograr toda la funcionalidad requerida. En esto debo ser honesto, la calidad de programador la juzgan aquellos para quienes trabajo pero soy un pésimo diseñador gráfico y creo que eso le ocurre a todo aquel que hace páginas web, algunos de los cuales se hacen llamar “webmaster”.

Tampoco creo que las avanzadas herramientas gráficas como Gimp o fotoshop hagan de cualquier cevichómano o webmaster un artista.

La tecnología por si sola no trae la estética, para ello son necesario artistas que construyan una capa de arte sobre la la capa tecnológica.

sábado, 23 de febrero de 2008

Pantallas en VB6 ...

sigue siendo la iniciativa de la Industria de Software ecuatoriana al mercado mundial en momentos en que el mundo regresa a ver a América del Sur como una importante fuente de iniciativa e imaginación para el desarrrollo de software.

Por América del Sur, europeos y norteamericanos vinculados a la industria IT, "entienden" principalmente a Brasil y Argentina, donde el potencial humano y creativo renace sobre la base de la retro-alimentación mutua entre la comunidad y el software libre y código abierto. La razón competitiva es simple: en Brasil los ingenieros y tecnólogos de software saben y les gusta programar, y lo más importante son pagados por ello con sueldos dignos de técnicos. El diseño y la programación orientada a objetos, los entornos de trabajo y los nuevos conceptos alrededor de servicios como ESB y SOA no son extraños a la industria.

Acá en la República del Ecuador mientras tanto, el técnico programador sigue siendo un sugeto explotable al mismo nivel de una trabajadora doméstica. Instituciones financieras contratan secretarias por 350 dólares mensuales e ingenieros de sistemas por 200, mientras que los grandes contratos informáticos tienen más de amarre, corrupción y engaño que de tecnología.

El “efecto pantalla” generado por gran parte de la industria local con Visual Basic como su herramienta estratégica ha dañado el mercado y es muy poco lo que puede ofrecer. Peor aún si los abundante ingenieros de sistemas generados por las abundantes universidades creen que nos es necesario saber programar para hacer software... absurdo !

viernes, 25 de enero de 2008

¿Qué paso con Java en el 2007?

Se afianzó la máquina virtual (JVM) sin duda y la versión 6.0 nos trajo algunas mejoras como aquella de permitir la ejecución de scripts en otros lenguajes dentro de su código, lo que le permitirá a los fabricantes de software construir grandes aplicaciones con soporte de “macros” y “plugins”. Por supuesto para hacerlo necesitamos un poco mas de teoría.

Algunos desarrolladores han comenzado a sentir como que las cosas se quedan con el lenguaje (no con JVM), para Bruce Ekcel (autor del memorable “Thinking on Java”) nos plantea en un artículo que Java sigue atado al pasado y por lo tanto eso detiene su evolución, y nos recomienda un nuevo lenguaje (otro !) llamado Scala.

El avance real de la tecnología Java se dio el año anterior se basa en la implementación de lenguajes dinámicos (muy dinámicos) sobre JVM, JRuby y Groovy son un buen ejemplo de ello, también han evolucionado los frameworks desde los ya clásicos Spring y Hibernate, hasta los pujantes Grails y JRuby/Rails. Además fue el año de NetBeans, el super IDE construido por Sun.

La manera como otras tecnologías, como Ruby y Rails, pudieron agarrar el tranco de la tecnología Java, fue por que Sun las migró y las recostó sobre JVM y las hizo parte de NetBeans en un matrimonio perfecto. Ruby y Ruby on Rails son excelentes y para sobrevivir necesitaban estar sobre JVM.