Este mes Bob Rhubart ha publicado en la comunidad de Arquitectos  OTN, @OTNArchBeat , una serie de podcast en relación a los problemas, atajos y oportunidades que el sector de TI tiene sobre la adopción de SOA en organizaciones tanto privadas como públicas.  Nuevamente palabras como «Automatización», «personas» y «procesos» son denominadores comunes en una adopción que no solo se limita a instalar las herramientas ya que las mismas por si solas no son la solución a los problemas de integración, código legacy y cambio en arquitecturas que hoy en día son realidad en el mundo.

Los entrevistados, todos Ace Directos en europa, plantean sus puntos de vista que reflejan la experiencia en la materia:

https://blogs.oracle.com/archbeat/entry/podcast_show_notes_finding_a?msgid=3-9683914799

A finales del 2013 ‏@rebelalliance_ me compartió un video que he tenido pendiente de publicar.
La ejecución de la presentación de Bret Victor se basa en llevarnos por algunos hechos que en «el futuro» definirán como programar computadoras desde el punto de vista de la Ciencia de La Computación… sí, la computación es una ciencia.  Solo como tip, recuerden que la presentación se contextualiza en el 9 de Julio de 1973 😉 y que «hoy» deberíamos estar viviendo la segunda (o incluso tercera) parte de ese futuro…. o no?

Les comparto este video de Sven Peters en el cual nos muestra puntos de vista sobre como en la actualidad se puede mejorar el desarrollo de software. Esta ves no volveré a hablar del Agile Manifesto (previamente he escrito sobre el Origen de Ágil y CMMI y Ágil Software Development) dado que la palabra ya está muy desgastada y al final a título personal creo que el 90% del tiempo se cree que Agile es hacer prototipos y entregar software «rápidamente».

Image: Copyright Oracle Corporation

La Java Virtual Machine, HotSpot, posee una amplia variedad de Flags que modifican su configuración, comportamiento y rendimiento. Comúnmente nos llega la ocación, ya sea por requerimiento de un software o por necesidades propias, de hacer ajustes comúnes como el caso del tamaño del heap y perm geneneration (-Xmx , -Xms, PermSize, MaxPerSizerespectivamente). Sin embargo los expertos indican que muchos de los problemas de performance se deben a la lógica de programación  de la aplicación, malas prácticas y defectos de diseño que al final se ven reflejados en la JVM. «Modifique estos Flags si y solo sí usted sabe lo que está haciendo» es una de las frases que en conferencias y documentación se enfatizan frecuentemente en lo que respecta a performance tuning de aplicaciones Java».

Hace algún tiempo encontré una gráfica que Alex Ragozin compartió en donde se muestran visualmente las flags categorizadas por su tipo. Recientemente encontré otro listado que categoriza las flags por uso (diagnóstico, producción, desarrollo, etc). Hoy Kirk Pepperdine (@kcpeppe) ha publicado en su blog de java.net un excelente Caso de Estudio sobre el uso de Flags de la JVM que nuevamente llama a la reflexión de que las bondades que ofrece Hotspot en cuanto a configuración es una espada de doble filo y que se debe de saber lo que se hace antes de empezar a «probar» realizar modificaciones. Recuerden, es mejor hacer un proceso de sanidad del código fuente y diseño antes de empezar a culpar a Generics por un mal performance.

En otro post comentaré acerca de los tipos de colectores y la evolución que estos han tenido dado que G1 sigue tomando protagonismo en lo que a Algoritmos de Recolección de la JVM se refiere. Lo cual nos va a hacer replantear nuestros viejos trucos bajo la manga que hasta el momento han sido documentados 🙂 en cuanto a Performance Tuning en aplicaciones Java se refiere.