viernes, 17 de mayo de 2013

Nuevo Post de ¿Noticias?

Bueno, se me han acumulado varias ¿noticias? interesantes que no me gustaría dejar pasar:

Droos & Infinispan: Este post es muy interesante porque cuenta cómo cambiar la capa de persistencia por default de Drools (JPA con Hibernate) por una que utiliza la API cliente de Infinispan (la solución NoSQL de JBoss: DataGrid + Key-Value Store), y en el medio desglosa la capa de persistencia actual de Drools:
(14 Mayo)

Tres Maneras Muy Típicas de Fracasar en un Proyecto Ágil: simple, conciso; nos recuerda por qué está mal seguir ciegamente un boom (o dogma) sólo porque está de moda:
(15 Mayo)

Guerra de OCP: Debates muy interesantes en torno al principio de Open-Closed que forma parte de los principios SOLID. En el primero, Uncle Bob se indigna por un tweet que ataca a OCP, revisa sus primeros artículos sobre OCP y admite que fue demasiado estricto en su primera definición, pero que con el tiempo se fue ablandando:
(8 Marzo)
En el segundo, InfoQ documenta un poco mejor esta guerra (que no terminó ahí; recién empezó) con artículos de expertos que dicen que OCP y otros principios de SOLID han traído más daño que beneficios al mundo del software:
(7 de Mayo)

CDI en una sola página: Prolijo resumen de CDI, casi como una Reference Card:
(11 de Mayo)

Explorando Errai Framework: Parece un tutorial muy interesante de este framework web de JBoss que conecta los mundos de GWT y CDI. Todavía no he tenido tiempo de leerlo, pero lo posteo aquí porque no quiero que se me pase:
(11 de Abril)

Seleccionando el ESB Adecuado a sus Necesidades de Integración: Este tipo de artículos de InfoQ sobre ESBs siempre es muy interesante. La elección de ESB para una empresa no es sencilla. Nos recuerda también que más importante que las bondades de un producto y todo su marketing, es entender cuáles son nuestras necesidades y, en base a ellas, elegir el producto que mejor se ajuste a ellas:
(2 de Abril)

Grupo de Software Architecture for Developers: Se abrió un grupo de Google para Arquitectos interesados en la filosofía sobre Arquitectura de Simon Brown, autor del libro Software Architecture for Developers (del cual hablaré en breve; calculo que en el siguiente post) y el blog Coding the Architecture. La dirección del grupo, para el que le interese:

JBoss AS ahora es WildFly: Por último, cierro con una de esas frivolidades que tanto nos hace sonreír. La gente de Red Hat, aduciendo que JBoss es el nombre de la comunidad Open Source que desarrolla productos como Hibernate, Errai, Weld, Infinispan, RichFaces, RESTEasy, y un largo etcétera, y que el servidor de aplicaciones debía tener un nombre distinto para que no se preste a confusión, ha decidido cambiarle el nombre a nuestro querido AS. En base a un concurso abierto que se hizo, se ha votado y el ganador fue: Wildfly (que en español vendría a significar algo así como "mosca salvaje" o "mosca silvestre"). Ésta será su página oficial cuando se lance:

Eso es todo por ahora. Su servidor, Adrián Paredes, informando desde las trincheras.

¡Hasta el próximo post!

sábado, 11 de mayo de 2013

Material de las Charlas de Principios de Diseño

Estas últimas semanas estuve dictando dos charlas de Principios de Diseño, la primera dedicada a principios SOLID (acrónimo creado por Robert C. Martin, que engloba 5 principios fundamentales de diseño de software: Single Responsibility Principle, Open Closed Principle, Liskov Substitution Principle, Interface Segregation Principle y Dependency Injection Principle) y la segunda sobre GRASP (principios generales de software para asignación de responsabilidades), Inmutabilidad, Funciones Libres de Efectos Secundarios y Closures.

Slides de la charla completa (los dos días dictados en Epidata):


Slides de la charla de SOLID (la que di recientemente en la UTN):


Solid from Adrián Paredes

El código fuente de las charlas se puede descargar/forkear desde GitHub:
https://github.com/elfrasco/design-principles.git

En este link se puede ver la grabación del primer día de la charla, cuando charlamos sobre SOLID en Epidata (sólo se requiere un nombre y un mail cualquiera para poder acceder):
http://www.anymeeting.com/pruebaadrianp/ED57D682874F

viernes, 26 de abril de 2013

Charla de SOLID en la UTN


Como anuncia la propaganda del evento, el jueves 9 de mayo, desde las 18hs, estaré en el Aula Magna de la UTN (Universidad Tecnológica Nacional) de Buenos Aires (Medrano 951), charlando sobre SOLID, un conjunto de Principios de Diseño para lenguajes orientados a objetos, los cuales ya he mencionado en posts anteriores en este blog.

Cuando una aplicación tiene problemas de diseño, los cambios de requerimientos y la mala administración de dependencias va degradando su calidad, logrando que la entropía crezca de forma exponencial. En cualquier paradigma es relativamente sencillo entender los conceptos que lo componen. En la orientación a objetos es sencillo comprender las definiciones de herencia, composición, abstracción, encapsulamiento o polimorfismo. Pero así como conocer las reglas del ajedrez no nos vuelve buenos jugadores, lo mismo sucede con la programación y el diseño. El objetivo de esta charla es revisar los conceptos básicos de diseño, que son los pilares para la definición de patrones y la creación de frameworks y aplicaciones robustas.

La entrada es libre y gratuita. ¡Los esperamos!

sábado, 6 de abril de 2013

¡Qué Despierte la Red!

partidodelared.org

¿Qué es el Partido de la Red?

Un movimiento que aspira a abrir el ancho de banda de la democracia hacia una #DemocraciaEnRed.

El #PartidoDeLaRed plantea que la democracia actual es una #DemocraciaEstancada, forjada en la realidad tecnológica del siglo XIX a base de contratos en tinta y papel. El contrato es una forma primitiva de software, se codifica con un lenguaje textual y ambiguo, mientras que el software informático se construye a partir de un lenguaje estrictamente lógico. La democracia de hoy falla porque el pueblo sólo participa en las urnas para elegir políticos (y no ideas) que lo representen, cuando contamos hoy, en nuestras casas, en nuestros trabajos, con la tecnología suficiente para representarnos a nosotros mismos, votar todos los días, cada decisión, en todo momento.

El partido se encuentra desarrollando actualmente un software que funcionará como un espacio online para la deliberación y votación de propuestas políticas, proponiendo estimular argumentos y arribar a decisiones. El cambio hacia una #DemocraciaEnRed actúa "de abajo hacia arriba", mediante un software que propone un cambio en la forma de participar de los ciudadanos, así como también "de arriba hacia abajo" ingresando un "caballo de troya" en la cima de la pirámide del poder, en el propio Poder Legislativo, que sólo exprese lo que el pueblo ya ha expresado por Internet (por lo menos hasta que por fin se declare obsoleta la forma de gobierno actual).

El #PartidoDeLaRed es literal: se organiza, trabaja y decide en Red. Para ello, se compromete a utilizar el Software de #DemocraciaEnRed para dirimir las cuestiones internas del partido, elegir sus candidatos, presentar problemáticas y propuestas, y construir el mandato que tendrá el legislador o los legisladores que accedan a cargos públicos electivos.



¿Cómo Colaborar?

Actualmente, el #PartidodelaRed está en proceso de inscripción en la Ciudad Autónoma de Buenos Aires con el objetivo de presentar una lista de legisladores en las elecciones legislativas de la Ciudad, en Octubre de 2013. A partir del lunes 9 de Abril se puede asistir a diferentes lugares de la ciudad de Buenos Aires para firmar como Adherente y permitirle de este modo al partido presentarse a elecciones.

Un Adherente no es lo mismo que un afiliado ni implica vinculación alguna con el partido, es simplemente una persona que se manifiesta a favor de que exista el partido como entidad real en el sistema de elecciones actual de Buenos Aires. Para esto deben alcanzar 4000 firmas y éstas deben ser realizadas en planillas oficiales que entrega la justicia electoral.

Más información:

Página Institucional:

Wiki:

Manifiesto:

FAQ:

En lo Personal

En lo personal pienso que de verdad este movimiento puede resultar muy interesante. Es claro que la política aquí en Argentina no da para más. Es claro que la democracia así como se implementa hoy no sirve. Este partido está proponiendo una forma de gobierno nueva, más democrática que cualquier otra de las que existe. Si llega a poder llevarse a cabo, es posible que transforme radicalmente la forma de vida de nuestra sociedad. Creo que sólo por su propuesta innovadora ya se merece llegar a las 4000 firmas para presentarse en las elecciones.

La tecnología avanza mucho más rápido que la sociedad. Quizá es hora de que la sociedad evolucione, cambie la forma de gobernar... y ¡qué despierte la Red!

lunes, 1 de abril de 2013

Noticias Marzo 2013: Lo Que Viene

Después de las bombas de la primera quincena, el resto de marzo se mantuvo más o menos tranquilo. A continuación las noticias/artículos que me parecieron más relevantes:

Drools Planner pasa a llamarse OptaPlanner

Así es, el módulo de optimización de recursos empresariales de Drools (¿investigación operativa?) se ha despegado del nombre de Drools y ha hecho rancho aparte, con nuevo sitio y todo. En este post del sitio explican las razones. Algunos de los puntos más interesantes a tener en cuenta son:
  • OptaPlanner no es un fork de Drools Planner. Sólo han renombrado el proyecto.
  • El compromiso de OptaPlanner con Drools no ha cambiado. OptaPlanner sigue recomendando Drools como motor de reglas de negocio (aunque el proyecto se haya independizado).
  • La licencia es Apache Software License 2.0.
  • Red Hat está considerando ofrecer suscripciones de OptaPlanner dentro del paquete de BRMS
Es un momento ideal para recordar los proyectos más importantes del ecosistema BRMS (lo que es Drools para la comunidad JBoss):
  • Drools Expert: motor de reglas de negocio.
  • jBPM: motor de procesos de negocio (BPM).
  • OptaPlanner: motor de planeamiento de negocio.
  • Drools Fusion: se monta sobre el motor de reglas de negocio (Drools Expert) y provee procesamiento complejo de eventos (CEP) y lógica temporal.
  • Drools Guvnor: repositorio de activos de negocio (reglas, procesos, dominios), montado sobre Apache JackRabbit (implementación JSR-170 y JSR-283)
Java EE 7 - Coming Soon

Los de JavaHispano están manteniendo una comunicación con Arun Grupta, que tiene algunos tutoriales interesantes sobre las nuevas especificaciones que formarán parte de la inminente plataforma Java EE 7. Este post está muy interesante. En él se cuentan algunas de las nuevas especificaciones (Java API for JSON Processing, Java API for WebSocket, Batch Applications for the Java Platform, Concurrency Utilities for Java EE) y upgrades para las existentes (JAX-RS 2.0, JMS 2.0, Bean Validation 1.1, JSF 2.2) que formarán parte del nuevo estándar de Java para la plataforma enterprise.

Aquí algunas de las "sabias" reflexiones que estuve mandando a Twitter:






Una Aplicación por Servidor/Dominio

Adam Bien escribió en su blog un post interesante fundamentando Por qué no una Aplicación por Servidor/Dominio. Por supuesto, el post está completamente a favor del aislamiento absoluto de las aplicaciones Java, al punto de mapear una Aplicación Java por cada JVM. En el siguiente tweet él mismo resume su idea:


Actualmente esto se suele hacer en las empresas para las aplicaciones críticas o core del negocio, aislándolas absolutamente en su propio servidor, dejando que aplicaciones de menor importancia compartan classloader. Habrá que ver cuánto overhead se le agrega a operaciones a la hora de administrar un servidor/dominio por aplicación.

DZone RefCard: Getting Started with Git

Para cerrar, la buena gente de DZone ha publicado hoy una nueva de sus tarjetas de referencia sobre los primeros pasos a dar con Git. Me adhiero a estas tarjetas de referencias porque la verdad que están muy buenas. Actualmente cuentan con 178 y todas las semanas actualizan. Además tienen de muchos temas, por ejemplo Spring, CDI, JPA, EJB, Patrones, Ruby, JavaScript, etc, etc, etc.