martes, 24 de septiembre de 2013

Apache™ BatchEE propuesto para Apache™ Incubator

Propuesta BatchEE

Recientemente se ha publicado la propuesta del proyecto Apache BatchEE para brindar soporte a la implementación de JBatch (JSR 352). Estamos hablando de una API para construir aplicaciones de procesamiento de tareas por lotes, generalmente en modo no interactivo. Esta es una de las novedades que incluirá Java 7. Los objetivos iniciales del proyecto consisten en continuar el desarrollo de la implementación inicial, pero además integrarla con la gran cantidad de frameworks para Java de la ASF. La propuesta es de vital importancia para incluir soporte para Java 7 en tecnologías que implementan los estándares J2SE y J2EE e.g. Apache™ Geronimo, TomEE. Otros proyectos relacionados son OpenWebBeans y OpenEJB, así como las soluciones de orquestación de aplicaciones empresariales como Camel.

Acerca de Apache™ Incubator

Es posible contabilizar más de 100 proyectos en el ecosistema de la Apache Software Foundation. Apache™ Incubator es el punto de partida en el camino a convertirse en un proyecto oficial de la fundación.

Suscribirse a este blog mediante RSS

miércoles, 18 de septiembre de 2013

Las murallas infranqueables de vim



En estos días he tratado de mejorar mis habilidades con vim porque, honestamente, no paso de ser un principiante. Lo digo basado en lo que pude aprender en este video grabado en una conferencia europea de Ruby On Rails. Hay varios mensajes claros. En general es un hecho que el desempeño de un programador aumenta muchísimo a medida que le resulta intuitivo el uso de los diferentes comandos de vi, especialmente si se construye un .vimrc que permita reducir el número de teclas utilizadas para realizar las acciones más comunes. Es por eso que no es una ciencia exacta. Algunas personas hacen ciertas cosas más frecuentemente que otras. Pero esto no basta, hay que coneguirse un buen teclado. Empiezo a pensar que los teclados que traen las computadoras y laptops frecuentemente no son apropiados para los programadores. Interesado en estos temas hice mis búsquedas y descubrí las respuestas de varios misterios.

Las teclas hjkl

Son disímeles las reacciones de las personas cuando conocen que en vi los movimientos del cursor se hacen con las teclas h (izquierda) , j (abajo), k (arriba), l (derecha). Algunos no se explican semejante barbaridad. Otros (casi siempre simpatizantes de Unix y/o GNU/Linux) inicialmente piensan que fue una decisión inteligente para disminuir el desplazamiento de las manos. Puede ser que haya algo de esto, quién sabe. En realidad el caso es que Bill Joy creó el editor de textos vi utilizando la terminal ADM-3A. Si observan la figura se podrán dar cuenta de que en ese (antiguo) aparato el desplazamiento se hacía con esas teclas. Más allá de que fuera una decisión inteligente o no, el comportamiento de vi fue algo natural (para la época). Después llegó vim y el resto es historia ... ;)

Teclas hjkl de ADM-3A

A continuación una foto de cuerpo entero de la terminal dónde se creó vi

Terminal ADM-3A de Lear Siegler

A continuación aparece el teclado completo. Fíjense en la posición de la tecla ESC y se darán cuenta de las razones por las cuales se utiliza para cambiar de modo.

Teclado completo ADM-3A

La huella de este terminal no parece limitarse a estos hechos. Si se presta atención a la tecla Home en la esquina superior derecha quizás comprendamos porqué es que la carpeta home de los usuarios de Unix (GNU , ...) es referenciada con el símbolo ~.

No son pocos los detalles interesantes relacionados con vi. Es un editor de texto que no deja de sorprenderme. A todos los interesados en conocer todos los secretos de vim les respondo parafraseando un poema de Nogueras

(...) vi tiene sus arcanos
vi tiene sus secretos
vi tiene sus «comandos infranqueables» (...)

martes, 17 de septiembre de 2013

Python utilizado en software para microscopio electrónico

Titan Themis S/TEM

Recientemente Enthought Inc. anunció el lanzamiento de una plataforma de software para los microscopios electrónicos de FEI, empresa líder en el campo de instrumentación para investigaciones en nano-tecnologías con gran impacto en la industria y el sector científico. Se ha materializado así la línea de productos de software Velox™ basada en la plataforma de aplicaciones científicas Enthought Canopy® y aplicada en el producto Titan Themis. Estamos en presencia de una infraestructura de desarrollo y despliegue rápido de aplicaciones basada en Python que ha sido implementada para la adquisición de datos, análisis en tiempo real, componentes de visualización y aplicaciones de flujos de trabajo optimizados para el sector al que van dirigidos estos productos.

¿Qué es Canopy?

Canopy es un framework de desarrollo robusta que ha ayudado a FEI a poner rápidamente en el mercado sus productos y aplicaciones Velox. La plataforma viene acompañada de un sistema de plugins, un entorno de desarrollo, herramientas de actualización y despliegue de paquetes de software, así como paquetes de herramientas especializadas en análisis de datos y soporte a investigaciones científicas. La popularidad y facilidad de uso del lenguaje Python le permite a FEI y sus clientes un nivel de personalización mediante scripts de Python muy útil para adaptarse a las características y condiciones presentes en los lugares específicos donde se utilice el equipamiento teniendo en cuenta los objetivos y necesidades puntuales de las investigaciones que se lleven a cabo. La productividad y eficiencia aumenta pues los especialistas se enfocan en temas específicos de su ámbito de negocios, dígase la microscopía, construcción de instrumentos de alta precisión e investigaciones relacionadas.

Acerca de Enthought Inc.

Fundada en el año 2001 Enthought Inc. es una compañía dinámica de rápido crecimiento en los últimos años. Su meta de negocios fundamental es la mejora significativa de los procesos de cómputo para aplicaciones científicas. Con ese fin acumulan una vasta experiencia ofreciendo a sus clientes potentes herramientas y servicios en el área de análisis cuantitativo y visualización de datos. Sus instalaciones radican en Austin, Texas con oficinas en New York (USA), Cambridge (Reino Unido), y Mumbai (India).


Acerca de FEI


NASDAQ:FEIC

Por su parte FEI es uno de los líderes mundiales en el sector de microscopía electrónica. El precio de sus acciones se ha elevado desde $11.82 USD en marzo del 2009 hasta su valor histórico más alto al cierre del 13 de septiembre del 2013 situado en $85.48 USD.


lunes, 16 de septiembre de 2013

Popularidad de Python, septiembre 2013

Python Community @ Linkedin

Después de 6 años de existencia el grupo de Linkedin Python Community ha sobrepasado la marca de los 50,000 suscriptores. El anuncio de Danny Adair no es más que el reflejo del interés sostenido en este lenguaje de programación por parte de emprersas, institucionaes y comunidades. El grupo es bastante activo y es el canal ideal para estar al tanto de tecnologías, soluciones, integraciones y oportunidades relacionadas con el ecosistema de Python. A propósito de este acontecimiento les ofrezco una panorámica actual de la popularidad de varios lenguajes según ciertas fuentes especializadas. Si quiere estar actualizado con estos temas le invito a suscribirse mediante RSS a este blog. No le resultará extraño que le mencione que el 90% de los proyectos están relacionados con Python. Puede ver los detalles (y seguirme si los repositorios le resultan útiles) accediendo a mis cuentas olemis @ Github y olemis @ Bitbucket.

TIOBE

TIOBE index

Comenzamos por este ranking. En estos momentos los análisis estadísticos de TIOBE lo ubican estable en el octavo lugar.

Los aspectos que más me llamaron la atención son los siguientes :

  • Python se encuentra inmediatamente después de (Visual) Basic ... ¿en serio? Bueno, sorpresas que nos deparan las estadísticas. Si alguien conoce las causas, por favor me gustaría conocer sus comentarios al respecto.
    • Antes que todo es preciso mencionar que (Visual) Basic ha oscilado históricamente entre los puestos 4 y 7, siendo agosto del 2013 su clasificación histórica más baja. Su tendencia en los últimos años evidencia una franca decadencia.
    • Python ha cedido terreno después de un pico histórico en el año 2011 que lo catapultó a la cuarta posición. A pesar de la baja en este último semestre considero en general que la tendencia es estable.
  • Actualmente C es el número 1 de la lista, presentando una de las tendencias más estables.
  • Java es el único que ha podido opacar la condición de líder de C. Su hegemonía abarca el mayor lapso de tiempo a lo largo de la historia del índice. Sin embargo en general muestra una tendencia negativa.
  • C++ muestra una tendencia estable desde el año 2005, pero en porcientos inferiores a los primeros años
    de conformación del índice.
  • Los dos lenguajes que más han mejorado en estos últimos 5 años son Objective C y C#. Sin embargo ambos descienden
    un escaño en comparación con el año anterior.
  • Es la primera vez que Transact-SQL clasifica en el top-ten.
  • El lenguaje estadístico R evidencia la mayor remontada al subir 6 puestos en un intervalo de un año. Esto no es algo fortuito.
    • Recientemente varios fabricantes importantes de gestores de bases de datos (e.g. Oracle Data Miner, Oracle Enterprise R, SAS/IML, JMP, SAP, Teradata,
      Jaspersoft BI, Pentaho Kettle) lo han empotrado en sus productos con el fin de ofrecerlo como una poderosa herramienta de ánalisis e inteligencia empresarial.
    • El uso de R en Google (con su estilo característico) es algo cotidiano. Con el fin de efectuar cálculos estadísticos internamente existe una infraestructura de cómputo distribuido para R basada en el paradigma MapReduce?. Por tanto no es extraño que la compañía se cuente entre sus patrocinadores.
    • La consecuencia másinmediata de esto es que el lenguaje es una solución probada para Big data analytics, sector en plena expansión según Gartner.
    • Otro aspecto importante a considerar es
      la espectacular aceptación de cursos online como Computing for Data Analysis y Data Analysis, ofrecidos ambos por Coursera.
    • En los últimos 5 años R ha desplazado a Matlab como lenguaje de cálculos estadísticos. No hay presupuesto de I+D que pueda competir con prácticamente todos los departamentos de estadística del mundo considerando el inmenso número de especialistas, profesores, alumnos y personas que mejoran el lenguaje de forma gratuita. Sin dudas un caso de éxito del software libre.
  • Bash está en el lugar 28, Erlang en el 36 y Scala en el 42.

Creo oportuno recordar que el índice de TIOBE se conforma seleccionando los motores de búsqueda más relevantes según Alexa y calculando un porciento tomando en consideración solamente el número de páginas que incluyen el nombre del lenguaje de programación. Los datos proporcionados por cada buscador son normalizados teniendo en cuenta su ranking e.g. Google Search 28%, Blogger 28%, YouTube? 7% . La influencia de Google en los resultados es incontestable. Esto ha generado fuertes críticas debido a que los resultados se pueden manipular y dependen en gran medida de las diferentes políticas de indexación y relevancia de los servicios de búsqueda.

El sitio de TIOBE está programado en PHP.

LangPop

LangPop

LangPop calcula varias métricas y ofrece una comparación normalizada que las combinapara dar una idea general de la popularidad de los lenguajes. En este últmo indicador Python se ubica en el sexto lugar, lidereando las categorías programming.reddit.com, e IRC. En todos los demás acápites los análisis siempre lo ubican entre los primeros 10* puestos.

RedMonk

RedMonk

Este índice se calcula desde el año 2011 utilizando una metodología presentada por Drew Conway y John Myles White en diciembre del 2010. Las fuentes de datos utilizadas son Github y StackOverflow?. Python ocupa el cuarto lugar, solo precedido por JavaScript?, Java y PHP.

Según los autores ambas fuentes de datos representan colectivamente significativos volúmenes de datos para fines estadísticos. Ambas comunidades, si bien se solapan, presentan una cierta independencia estadística evidenciada por una fuerte correlación de 0.78. La elección se justifica teniendo en cuenta esta característica combinada con la gran cantidad de usuarios de ambos servicios y las facilidades (API) para adquirir de forma pública los datos necesarios para confeccionar el análisis. De hecho se ignoran otros sitios muy populares como Bitbucket, Launchpad, Google Code, Sourceforge, Freshmeat ... En mi opinión esto afecta un poco los juicios que se puedan emitir a partir de los resultados.

PYPL

PYPL

El índice PYPL (de las siglas en inglés PopularitY of Programming Language) surge como un intento de ofrecer métricas más confiables (i.e. menos manipulables) que TIOBE. Los indicadores se calculan a partir de las tendencias de de búsquedas de tutoriales en Google Search.

Considerando estas métricas Python se ubica en el cuarto lugar. Los hechos más importantes a destacar son:

  • El descenso de Perl, PHP y Basic
  • El crecimiento sostenido de Python y Objective C.

Conclusiones

Muchos abordan el tema de la popularidad de los lenguajes por mera curiosidad. Otros lo consideran una vanalidad. También hay quienes (como yo) consideran que los análisis de popularidad sí son importantes. Por supuesto que a la hora de tomar decisiones basadas en este tipo de comparaciones es precisio tener bien claros los objetivos que se pretenden alcanzar, las variables que favorecen o atentan contra dichas metas y, una vez que se tengan estos aspectos bien definidos, entonces buscar el índice confeccionado con las métricas que reflejen mejor los criterios a favor o en contra de un lenguaje específico. En el supuesto caso que no exista un ranking que reuna estos requisitos, entonces será necesario seguir el ejemplo de PyPL. Habría que definir nuevos indicadores y buscar las herramientas de análisis necesarias para colectar los datos y calcular las métricas necesarias.

Perspectivas para Python

En todos los análisis Python aparece entre los 10 primeros lugares con tendencias positivas en los últimos meses/años. Sin embargo creo que hay varias líneas en las que considero que todavía hay mucho por hacer. A continuación menciono algunas que considero de vital importancia para impulsar una tendencia sostenida de crecimiento en la popularidad y uso del lenguaje.

  • Python debería ser utilizado más frecuentemente para construir aplicaciones e interfaces de usuario dinámicas en los navegadores web de los clientes.
    • En este sector Javascript es líder absoluto e indiscutible.
    • Todos conocemos las limitaciones de Javascript último desde el punto de vista de las estructuras de programación, especialmente si consideramos las facilidades que ofrece para programación orientada a objetos y otras estructuras cada vez más comunes y útiles.
    • Entre todos los lenguajes de programación Python se encuentra en una posición muy ventajosa
      para presentarse como el sustituto de Javascript como lenguaje de scripts en el navegador web.
    • Actualmente existen varios proyectos con serias intenciones de ofrecer una solución
      entre los que puedo destacar a Brython, CoffeeScript, pypy.js , entre
      otros con distintos enfoques, niveles de soporte y compatibilidad.
  • Los servicios de hosting deberían ofrecer opciones para activar aplicaciones web
    y/o paquetes de Python segun las demandas de los usuarios.
    • En este sentido PHP, Perl y Ruby tienen una ventaja considerable pues casi todos los
      proveedores que ofrecen cPanel o sistemas equivalentes incluyen herramientas como
      Perl Modules, PHP PEAR Packages, PHP Configuration, RubyGems y Ruby on Rails.
    • Quizás deban cambiar también algunos detalles de las soluciones de administración de
      paquetes y creación de entornos virtuales.
  • El uso de Python para programar aplicaciones en dispositivos móviles es todavía
    una asignatura pendiente.
    • Este es un sector muy dinámico que se encuentra actualmente en un franco crecimiento
      matizado por actores
    • Java, C# y Objective-C (en mi opinión por ese orden) son los lenguajes más
      populares en este sector.
    • Proyectos como QPython, Py4A o SL4A
    • Mono for Android (para .NET) es una referencia a considerar.
  • Python es un lenguaje ideal para usuarios de aplicaciones científicas, pero
    considero que las ofertas de productos de adquisición de datos, .
  • Python debería jugar un papel más activo en las soluciones big data
    pues este mercado está en pleno proceso de estandarización, crecimiento y adopción
    por parte de los mercados emergentes.
    • La presencia de Python en las API de los servicios en la nube es relativamente
      buena, pero todavía hay muchos espacios para mejoras.
    • Proyectos como Pydoop, Happy, Hadoopy, y otros, así como la plataforma Google App Engine son buenos ejemplos de integración de Python soluciones big data para IaaS, PaaS, SaaS.
  • Otro sector de la tecnología que se está gestando es el de la impresión 3D.

sábado, 14 de septiembre de 2013

TuxInfo 61 : Instalando Apache™ Bloodhound 0.7

TuxInfo 61

Unos pocos días atrás se anunció el número 61 de la revista argentina de software libre TuxInfo. Este volúmen incluye mi más reciente artículo acerca de Apache™ Bloodhound titulado Instalando Apache™ Bloodhound 0.7. Estructurado en forma de tutorial explica paso a paso el proceso de instalación de la versión estable más reciente de este sistema de gestión de incidencias prestando atención a los dos motores de bases de datos recomendados: SQLite y PostgreSQL. En próximos espacios repasaré las particularidades del proceso para crear una instancia con MySQL. En mi tiempo libre también confeccionaré más tutoriales acerca de otros temas muy interesantes relacionados con las posibilidades que ofrece el soporte multi-producto incluído por primera vez en esta versión, así como las mejoras en la navegación del sitio y las poderosas herramientas que añaden varios plugins que estamos desarrollando en estos momentos. Si estos temas son de su interés le invito a suscribirse a este blog y a seguir los desarrollos en olemis @ Bitbucket y olemis @ Github.

En los últimos dos días se reportan unas 515 descargas de la revista. Todos quieren saber acerca de las noticias más recientes del software libre. No se pierda esta oportunidad de estar actualizado.

Descarga gratuita de TuxInfo 61

Tengo el inmenso placer de compartir el espacio de la revista con otros colegas que han escrito los siguientes artículos:

  • Instalando Apache™ Bloodhound 0.7
  • DEB Libre – Tus paquetes DEB en un solo lugar
  • GNU/Linux no es gratuito, es libre
  • Falcon Pro… y sus trucos
  • Instalando Google Play en una Coby Kyros
  • Elementary OS – un GNU/Linux sencillo y elegante
  • ... y una revisión de una ultrabook Dell XP13 con GNU/Linux.

También se comentan noticias como :

  • Google y Motorola lanzaron oficialmente el Moto X, el primer smartphone de bandera Google directo.
  • Debian cumplió 20 años de vida
  • Ubuntu volvió a apostar por Firefox como navegador preinstalado
  • Jean-Baptiste Quéru, el máximo responsable de Android Open Source dejó su cargo.