style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

blog de luxspes

Estimacion: Por que estimamos (Parte 1)

Hay quienes consideran que estimar es imposible y una perdida de tiempo, una inutilidad, hay quienes consideran que si puede hacerse, pero solo bajo ciertas condiciones y hay quienes piensan que el secreto en seguir un cierto método... Sin embargo yo quisiera antes de platicar al respecto de dichos puntos de vista, centrarme en una pregunta a menudo omitida en los artículos y libros de estimación:

Por que estimamos? Y no hablo de por que en el sentido teórico que típicamente se utiliza en los libros del tema, si no de, afuera, en el mundo real. No quisiera generalizar, asi que lo que diré a continuación lo digo acotado únicamente a mi experiencia.

No estimamos para saber cuanto tardara el proyecto, el cliente generalmente ya estableció un deadline que difícilmente moverá.

Por que estimamos entonces? Estimamos para ver si podemos hacer algo que quepa dentro del tiempo y presupuesto que ya están establecidos y que le suene al cliente a lo que pidió (por que si algo es cierto es que la mayoría de los clientes no sabe realmente lo que quiere hasta que no se le han hecho un par de demostraciones de avance )

JBoss AS ahora se llamara WildFly

Parece que JBoss AS ahora se llamara WildFly. Fue renombrado para reducir la confusion. El termino JBoss se referia tanto al application server, como a la comunidad y la linea de negocios

Las caracteristicas que mas me llaman la atencion son:

  • Arranque en menos de un segundo
  • Soporte para non-blocking I/O y web sockets
  • No mas jar hell a traves del uso de un diseño modular que permite cargar solo las bibliotecas que necesitas
  • Diseñado para ser probado mediante integracion directa con Arquillian

El repositorio en GitHub ya esta disponible

La version Alpha sera liberada pronto... ojala que cuando eventualmente WildFly llegue a GA, cumpla con todo lo que promete...

WebServices y JPA: Por que no puede simplemente funcionar! Desventuras con el CycleRecoverable

Que tan dificil puede ser acceder a una base de datos con JPA y exponer los POJOs a traves de JAX-WS?

No deberia ser muy dificil...

Una vez implementada la parte de las @Entities, simplemente retornamos los POJOS en nuestra clase de con @WebService...

Digamos que tenemos Producto 1..n PedidoProducto n..1 Pedido

Y entonces nos encontramos con este maldito error:

at java.lang.Thread.run(Thread.java:662) [:1.6.0_23]
Caused by: javax.xml.bind.MarshalException
- with linked exception:
[com.sun.istack.SAXException2: A cycle is detected in the object graph. This will cause infinitely deep XML: main.persistence.model.Producto@45b5ecf7 -> main.persistence.model.PedidoProducto@3589085 -> main.persistence.model.Producto@45b5ecf7]
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:326) [:2.2.4]

Como se resuelve?

Bueno, hay varias formas.

Swing y AWT han muerto: Podra ahora Java ser una plataforma viable para RIAs?

Swing, por fin, ha muerto y AWT tambien, Oracle se deshizo de AWT y todo lo que se construyó en la parte superior del AWT (Swing).

Debo admitir que yo pensaba que JavaFx seria quien moriria, pero no, es Swing quien ha muerto.
Ahora, Java FX no es sólo una nueva biblioteca de componentes, animación y multimedia, es un reemplazo completo de AWT [Abstract Window Toolkit], Java2D, Swing, Java Sound, Applets, ImageIO, Accessibility - en resumen, toda la capa de cliente de la plataforma JavaSE. (el package java.applet ha muerto también, ya no se usará mas)

Mis felicitaciones por a Oracle por finalmente cortar por lo sano, matar a Swing y a AWT y empezar (quiza, con mucha suerte) a volver a darle a viabilidad las RIAs basadas en Java.

El colapso de la nube ( Lo peor ya paso? o Lo peor esta por venir?)

Hace poco se colapso un aparte de la nube de Amazon. Algo que se suponia no podia pasar... o al menos era muy improbable que pasara... como resultado un numero importante de clientes se quedaron sin servicio servicio durante 4 dias (21 al 24 de Abril).

Este fallo me hizo recordar algunas de las cosas que lei en el libro del Cisne Negro de Nicholas Taleb. Este libro trata basicamente, sobre los limites que como humanos podemos alcanzar a la hora de querer reducir al comportamiento de la realidad a modelos abstractos... basicamente nos recuerda que hay cierto tipo de problemas (como el comportamiento de la Economia) para el que existe un limite mas alla del cual, por preciso que creamos que es el modelo, fallara... y nos recuerda que al confiar en un modelo no solo debemos preguntarnos que tan probable es que falle, si no que tan grave seria el impacto de la falla.

Taleb menciona que:

New SQL: Las bases de datos (pseudo) relacionales contraatacan

Parece que el movimiento NoSQL podria esta llegando a su fin, para ser sustuido por la nueva generacion de bases de datos (pseudo) relacionales: NewSQL, como VoltDB, que ademas de contar con propiedades de integridad transaccional (como ya es tradicion en las (P) RDBMs) cuenta ademas con la capacidad de escalar igual de bien que las NoSQL...

El principio del fin para las NoSQL? O daran un contra golpe? (Ojala que alguna de estas NewSQL adoptara un enfoque verdaderamente relacional... mmm... me pregunto que tan dificil sera construir un interprete de Rel encima de VoltDB....)

Paradojas I: Donde quedo la composición?

La composición (en OOP) es un modo de combinar objetos simples y crear objetos complejos.

Cuando un objeto es "Compuesto" se dice que tiene una relacion "tiene un". Un ejemplo del mundo real de composición seria por ejemplo, un automóvil (ejemplo tomado de wikipedia). Se puede decir que que un automóvil "tiene un/a" rueda, volante, asiento, motor, etc.

Hasta aquí todo bien... es un concepto simple,y en muchos casos se le considera una de las razón "clave" por la que la OOP es una "buena idea". Por lo tanto uno esperaría que un lenguaje como Java tuviera composición pero... la tiene? O solo tiene agregación?

La agregación, difiere de la composición en que no implica "pertenencia". En composición,cuando el objeto "dueño" es destruido, también es destruido el objeto contenido. En agregación, esto no es necesariamente cierto:

Por ejemplo (otro ejemplo tomado de wikipedia), una universidad tiene varios departamentos, y cada departamento tiene un numero de profesores. Si la universidad cierra, los departamentos dejaran de existir, pero los profesores en esos departamentos continuaran existiendo.

Las cosas se hacen mal: En el mundo

En general, no soy una persona patriotica, de verdad que no, y en general, tampoco me gusta escribir entradas en este blog que sean solo ligas a articulos en otro lado (los que hayan leido los choros tan largos que me he aventado aqui saben que no) pero la verdad es que me molesta mucho cuando dicen cosas como que la educacion en Mexico, en temas relacionados con la informática esta del asco, que deberiamos de mejorar nuestro nivel, para que sea tan bueno como, por ejemplo el que hay en paises del "primer mundo" como Estados Unidos (o en paises del tercer mundo, como la India).

Bueno, lean esto.

Me pregunto en cuantos otros casos nos pasa igual... creemos que nuestros medicos, arquitectos, abogados, obreros, maestros, soldados etc no son "tan buenos" como los que hay en otro paises... y en realidad, es solo una diferencia de percepcion.... (en USA se consideran menos corruptos a si mismo que nosotros... pero en verdad son mas honestos?)

VANGUARDIA TECNOLÓGICA 2011

El Gobierno del Distrito Federal a través de su Instituto de Ciencia y Tecnología (ICyTDF), en conjunto con la Secretaría de Educación del Distrito Federal (SE), la Universidad Autónoma de la Ciudad de México (UACM) y el Instituto Mexicano de la Propiedad Industrial organizan Vanguardia Tecnológica 2011, la 1a Feria de Innovación Tecnológica de la Ciudad de México, del 14 al 17 de marzo del presente año. La sede será el Centro Internacional de Exposiciones y Convenciones World Trade Center, Ciudad de México.

Mas informacion aqui.

Concurso mundial de “Aplicaciones para el desarrollo” del Banco Mundial

La nueva iniciativa Datos de libre acceso del Banco Mundial, puesta en marcha el 20 de abril de 2010, pone a disposición de todos los interesados de manera gratuita una serie de datos clave, entre ellos los Indicadores del desarrollo mundial, los Indicadores del desarrollo de África, los Indicadores de las finanzas mundiales y los de Doing Business. El objetivo del Concurso de Aplicaciones para el desarrollo es reunir las ideas de los desarrolladores y de los que se ocupan del desarrollo para crear herramientas, aplicaciones y combinaciones de datos innovadoras usando la información provista por la mencionada iniciativa. De esta manera, la competencia respaldará la meta de la institución de reducir la pobreza en el mundo al poner información importante a disposición de quienes pueden contribuir significativamente con los países en desarrollo.

Mas informacion aqui.

Distribuir contenido

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">