Translate

viernes, 9 de julio de 2010

Cumpleaños del Blog!!


9 de julio del 2009 fue el primer post de este blog y con él su concepción.

Tenemos 1 año de vida!!

No me había dado cuenta de que cumplimos años justo en el cumpleaños de mi patria.

Feliz cumple de la Patria y feliz cumple nuestro!! Agradezco a todos los que leen este blog y comentan. Saludos!!


Scala


Estuve leyendo un rato sobre este lenguaje, para resumir un poco sus características, es un lenguaje multipropocito y multiparadigma ya que mezcla la programación Orientada a objetos y la programación funcional, esta es una característica que lo hace muy interesante.

Otra cosa importante es que scala es compatible con java es decir que corre sobre jvm y puede utilizar jars.

Veamos un ejemplo de Quicksort:

def sort(xs: Array[Int]): Array[Int] = {
if (xs.length <= 1) xs
else {
val pivot = xs(xs.length / 2)
Array.concat(
sort(xs filter (pivot >)),
xs filter (pivot ==),
sort(xs filter (pivot <)))
}
}

Como podemos ver en el ejemplo es diferente a lo que estamos acostumbrados, dado que se mezcla con la programación funcional.
  1. El algorismo lo primero que hace es ver si el vector tiene 1 o 0 elementos si es así ya se encuentra ordenado, así que lo devuelve.
  2. Si tiene más elementos toma el elemento del medio como pivot y luego corta el vector en 3 los menores al pivot, los iguales y los mayores.
  3. Luego ordena los subconjuntos menor y mayor y así recursivamente.
  4. El resultado es la suma de los subvectores.

Vieron lo raro que filtra los menores y mayores podria usar el “.” es decir xs.filter(pivot ==). Esto es smalltalk-like como cualquier elemento es un objeto y todo usa objetos el indicador de llamadas a metodos puede ser el espacio o punto. De esta forma podemos hacer 1 + 1 o 1.+(1)

Otra característica es que al igual que ruby la ultima expreción ejecutada es el return de la función.

Esta muy bueno no? Alguien lo utiliza?

Dejo links:

http://www.scala-lang.org/

domingo, 4 de julio de 2010

Apache Software Foundation Sponsorship Thanks!

Me resulta muy raro esta pagina de Apache. Lo raro es que aparezca Microsoft como Sponsor pero no solo eso si no que me parece que faltan organizaciones como Oracle, IBM, etc.

http://www.apache.org/foundation/thanks.html

Apache ODE

Apache ODE (Orchestration Director Engine) es un motor BPEL de ejecución de proceso, ejecuta proceso BPEL estándar. Su API permite extenderlo de muchas maneras y por lo tanto , no es limitado a utilizar únicamente SOAP. El motor es suficientemente ligero como para ser publicado mediante la integración empresarial de java JBI (Java business Integration) con Apache ServiceMix (un excelete Bus ESB de Apache). Apache ODE no posee herramienta de diseño pero se puede utilizar un plugin de eclipse para BPEL.

La licencia de Apache ODE es licencia Apache.

BPM

BPM (Business Process Management) es lo que normalmente llamabamos workflow, es decir es un a forma de representar los procesos, los cuales son seguidos por el sistema. Permitiendo en tiempo de ejecución modificar el workflow y que se aplique estos cambios sin volver a compilar ni a bajar o subir la aplicación.

BPM marca al sistema el orden de ejecución de procesos dando la flexibilidad para poder modificar este orden cuando se lo desee. Esto permite centrarse en la lógica de negocio dando el poder de decisión al usuario final el cual por medio de un editor puede modificar el workflow como crea más conveniente. Se centra en el negocio. Faculta a los individuos de cualquier rincón de una empresa para alcanzar un mayor éxito. Reúne a personas y sistemas. BPM es donde se condensan todas las elevadas ambiciones y mejores estrategias.

BPM es un concepto muy sencillo. Es un conjunto de métodos, herramientas y tecnologías utilizados para diseñar, representar, analizar y controlar procesos de negocio operacionales; un enfoque centrado en los procesos para mejorar el rendimiento que combina las tecnologías de la información con metodologías de proceso y gobierno.

El objetivo de una solución para la gestión de procesos de negocio es proporcionar, dentro de las TI, implementaciones automatizadas de procesos de negocio de la vida real, como por ejemplo los procesos de pedidos y cobros, o de gestión de reclamaciones. Combinada con una SOA, esta forma de proporcionar funcionalidades de TI, con una visión orientada a procesos.

La tecnología BPM es el resultado de muchos años de experiencia en desarrollo y aplicación; el producto de los avances más actuales en sistemas y procesamiento de información; la cumbre de todas las arquitecturas, lenguajes y protocolos informáticos. La tecnología BPM constituye un gran avance, y un nuevo paradigma en cuanto a flexibilidad, gestión y control de información y datos.

BPM, como práctica de gestión integral, es el resultado de la combinación de avances técnicos con métodos y prácticas establecidos, de un modelo empresarial centrado en el proceso.

La tecnología BPM incluye todo lo que necesita a la hora de diseñar, representar, analizar y controlar los procesos de negocio operacionales:
  • El diseño y modelado de procesos posibilitan que, de forma fácil y rigurosa, pueda definir procesos que abarcan cadenas de valor y coordinar los roles y comportamientos de todas las personas, sistemas y otros recursos necesarios.
  • La integración le permite incluir en los procesos de negocio cualquier sistema de información, sistema de control, fuente de datos o cualquier otra tecnología. La arquitectura orientada a servicios (SOA) lo hace más rápido y fácil que nunca. No es necesario desprenderse de las inversiones ya realizadas; todo se puede reutilizar.
  • Los entornos de trabajo de aplicaciones compuestas le permiten construir e implementar aplicaciones basadas en web casi de forma instantánea, completamente funcionales y sin necesidad de código.
  • La ejecución convierte de forma directa los modelos en acción en el mundo real, coordinando los procesos en tiempo real.
  • La supervisión de la actividad de negocio (BAM) realiza el seguimiento del rendimiento de los procesos mientras suceden, controlando muchos indicadores, mostrando las métricas de los procesos y tendencias clave y prediciendo futuros comportamientos.
  • El control le permite responder a eventos en los procesos de acuerdo a las circunstancias, como cambio en las reglas, notificaciones, excepciones y transferencia de incidentes a un nivel superior.

viernes, 2 de julio de 2010

Libros Gratuitos

IBM esta sacando una serie de libros gratuitos por la pinta parecen buenos, de diferentes temas obviamente relacionándolos con sus productos. Creo que es muy bueno que estas empresas distribuyan libros gratuitamente.

Dejo el link:

https://www.ibm.com/developerworks/wikis/display/db2oncampus/FREE+eBooks

lunes, 28 de junio de 2010

Agujero de seguridad grave en Spring

Me llamo la atención hace unos días en mvnrepository.com vi una nueva versión de spring sec02, bueno hoy leyendo java hispano me encuentro que se encontró un agujero de seguridad en su versión 2.5.6 y 3.0.0 esto por suerte se a solucionado. En la versión 3.0.0 se soluciona cambiando a la 3.0.3 y en el caso de usar 2.5.6SEC01 pasarse a 2.5.6SEC02.

Dejo el links de fuente:


En el articulo dice que no esta libre la versión 2.5.6SEC02 y 3.0.3 no den bola, es amarillismo.

Dejo el link a mvnrepository

viernes, 18 de junio de 2010

SCA

Podríamos definir una aplicación como un conjunto de componentes de software interrelacionados. Todos estos componentes están construidos bajo la misma o diferentes tecnologías. Estos componentes pueden correr sobre la misma maquina en un sistema operativo y sobre una misma plataforma o en diferentes procesos, diferentes maquinas con diferentes plataformas y sistemas operativos. Sin embargo una aplicación es organizada para esto es requerido: una forma de crear los componentes y un mecanismo para describir cómo los componentes trabajan juntos.

Service Component Architecture (SCA) define un enfoque general para realizar estas dos cosas. SCA es un estándar de OASIS originalmente creado por diferentes vendedores como BEA, IBM, Oracle, SAP, etc. La especificación SCA define como crear un componente y como estos componentes interactuan para formar una aplicación. Los componentes en SCA pueden ser construidos en Java o en otros lenguajes y además permite interactuar con otras tecnologia como JEE, Spring o BPEL. SCA define un mecanismo común de ensamblaje que indica como los componentes son combinados dentro de la aplicación.

Apache Roller

Apache Roller es una completamente equipada, multi-usuario servidor de blogs adecuado para sitios grandes y pequeños. Es un motor de blogs de Apache.

Roller es una aplicación web Java que debe ser capaz de ejecutar en cualquier servidor Java EE y cualquier base de datos relacional. En la actualidad, corre mejor en Tomcat y MySQL - pero puede correr en Glassfish, WebSphere, JBoss, Gerónimo, Derby, PostgresSQL, Oracle, etc.

Roller es una producto estable y lista-servidor en el blog es importante revisión tercero. Roller se distribuye con licencia Apache. Roller se graduó de la incubadora de Apache en marzo de 2007 y ahora es un proyecto oficial de Apache.

martes, 15 de junio de 2010

MyIbatis


MyIbatis conocido anteriormente como Apache iBATIS, tuvo varios cambios estos días. Cambio de nombre y abandono la fundación Apache esto es poco común, dado que la fundación Apache da importancia a el proyecto por solo pertenecer a la fundación. Es un total misterio el abandono de la fundación.

Cambiando de tema, muchos se pregunta que es MyIbatis bueno es como un ORM. Pero no es un ORM completo como alguien lo llamo una vez es un ORQ (object relation queries). Es decir que tenemos que escribir el sql y mapear nuestro objetos a esas queries y el framework se ocupa de setear los valores de la query al objeto y viceversa. Es decir no es un competidor de hibernate sino de jdbc.

Cuando necesitamos mayor rendimiento y estamos seguros que vamos a escribir queries mejor que cualquier ORM, o cuando heredamos un diagrama de tablas sumamente complicado, nos conviene utilizar MyIbatis.

viernes, 11 de junio de 2010

Tenemos nuevo diseño !!!

Gracias a una nueva funcionalidad de blooger y que me hice un tiempito le dimos un nuevo diseño y más vida al blog.

HTML 5 !!

Como deben saber Html en su versión número 5 a salido a la luz. A raíz de esto se desataron peleas y discusiones varias en el mundo web.

He encontrado este resumen que explica los alcances de html 5 y una comparativa con flash el rey de la interactividad web.

El link es el siguiente:


http://www.focus.com/images/view/11905/

martes, 8 de junio de 2010

Apache OFBiz


Apache Open For Business Project es un proyecto de código abierto licenciado bajo Apache License 2.0. Este proyecto enterprice Open source y como enterprice Open source entendemos : Open Source ERP, CRM Open Source, Open Source de E-Business / E-Commerce, Open Source SCM, MRP Open Source, Open Source CMMS / EAM, y así sucesivamente.
Seria es criollo el ERP de Apache totalmente libre.
Apache OFBiz es una base y punto de partida de soluciones fiables, empresa segura y escalable. Utilícelo out-of-the-box (OOTB) o incluso personalizar para satisfacer sus necesidades de negocios más exigentes. Con OFBiz , usted puede comenzar de inmediato y ir escalando a medida que su negocio crece, sin el gran despliegue y costos de mantenimiento de los sistemas tradicionales de automatización de la empresa.
Es
de código abierto bajo la licencia Apache 2.0 y conducido por una comunidad Apache OFBiz ofrece la flexibilidad de diseño y el acceso a código, esta es una solución en la que no está solo, sino que puede trabajar con muchos otros para hacer las cosas.




sábado, 5 de junio de 2010

Frases

"Los programas deben ser escritos para que la gente los lea y sólo incidentalmente, para que las máquinas los ejecuten."

---Abelson / Sussman

"Mucho del software hoy en día se parece a una pirámide egipcia: con millones de ladrillos apilados uno encima del otro, sin integridad estructural y hecho por pura fuerza bruta y miles de esclavos."

--Alan Kay

"Cualquier tonto puede escribir código que un ordenador entiende. Los buenos programadores escriben código que los humanos pueden entender."

--Martin Fowler

"Hay dos formas de diseñar software: la primera es hacerlo tan simple que obviamente no hay deficiencias y la segunda es hacerlo tan complicado que no hay deficiencias obvias. La primera forma es mucho más difícil."

--C.A.R. Hoare

"Si deseas empezar y desarrollar algo grandioso, no necesitas millones de dólares de capitalización. Necesitas suficiente pizza y Diet Coke en la nevera, una PC barata y trabajo y dedicación para realizar tu idea."

---John Carmack

La mejor forma de predecir el futuro es inventarlo.

--Alan Kay

El software y las catedrales se parecen mucho. Primero lo construimos, después rezamos.

–-Anónimo