blog de paranoid_android

Introducción al soporte de aplicaciones al estilo Itil.

Todo sistema en Itil es un servicio por que... la finalidad de todo sistema es brindar un servicio al usuario (como cualquier otro servicio transporte, electricidad, agua, etc.) con niveles de calidad aceptables.

Como analogía si yo uso el sistema de transporte se que alguien va a operar el autobús, se que debo de pagar de cierta forma, lo puedo tomar en un horario, etc.

Un incidente entonces es una interrupcion total, parcial, o una degradación en el servicio.

Tipos de servicio
a. Servicios aplicativos para usuarios finales. (Desarrollos)
b. Servicios de tecnología que dan servicio a otros aplicativos. (La base de datos, la red, otro sistema, etc.)

El soporte aplicativo entra justo después de que termina la implementación en producción lo que es lo mismo después del desarrollo.

Una breve guía práctica sobre la Gestión de Incidentes.
Me llega un incidente. ¿Qué hago?
1. Revisar que tenga todos los elementos para poder analizar el caso. Por ejemplo logs, pantalla que generó donde se muestra el error, datos de contacto de quien levantó el incidente, fecha y hora.

Pequeño truquito con spring AOP con anotaciones

Saber cuánto tarda la ejecución de una sección con spring orientado a aspectos AOP y anotaciones.
Una gran ventaja es que no es invasivo
Realice este ejemplo con SpringSource Tool Suite, basando de un template de Spring Hibernate
por lo que maven bajo las siguientes librerías.
Excepto (aopalliance-1.0.jar y aspectjweaver.jar que agregue a mano)
Librerias:
antlr-2.7.6.jar
aopalliance-1.0.jar
asm-3.1.jar
aspectjrt.jar
aspectjweaver.jar
cglib-2.2.jar
commons-cli-1.0.jar
commons-collections-3.1.jar
commons-lang-2.1.jar
commons-logging-1.1.1.jar
dom4j-1.6.1.jar
h2-1.3.156.jar
hibernate-commons-annotations-3.2.0.Final.jar
hibernate-core-3.6.0.Final.jar
hibernate-entitymanager-3.6.0.Final.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
junit-4.7.jar
log4j-1.2.16.jar
plexus-archiver-1.0.jar
plexus-build-api-0.0.4.jar
plexus-compiler-api-1.8.1.jar
plexus-compiler-javac-1.8.1.jar
plexus-compiler-manager-1.8.1.jar
plexus-interactivity-api-1.0-alpha-4.jar
plexus-interpolation-1.13.jar
plexus-io-1.0.jar
plexus-utils-2.0.5.jar
slf4j-api-1.6.1.jar
spring-aop-3.0.6.RELEASE.jar
spring-asm-3.0.6.RELEASE.jar

Breve guía de construcción e integración de clientes web service con axis 1 en eclipse galileo

Creación del cliente

Crear un proyecto de prueba en eclipse de tipo web dinámico + glassfish.

El wsdl contiene la descripción de las operaciones, parámetros de entrada y respuesta de un web service
Descargar el contenido generado al invocar desde una pagina web al archivo wsdl de un web service.

Botón derecho sobre el archivo wsdl agregado a nuestro proyecto new > web services > web service client

Aparecerá una pantalla que solicita el wsdl y presenta el nivel de generación de código, subir el nivel al máximo hasta test.
> Next
Aparece una pantalla que reconoce las operaciones del web service.
> Finish
Se desplegará apareciendo paginas JSP que muestran las operaciones del web service.

Integración al proyecto

El generador de código de eclipse crea varias carpetas básicamente una carpeta corta que trae los archivos comunes a todas las operaciones.

En esa carpeta buscamos un archivo que termina como *ServiceLocator y dentro la cadena Endpoint0_address =
Esta cadena contiene la url y el puerto a la que apunta el web service normalmente esto se debe tomar de un .properties o equivalente.

Piedra roseta de querys.

Como realizar la paginación de una base de datos a otra:

Paginación

Mysql uso de limit offset (Recupera (limit) número de registros a partir de la posición (offset) ) y ejemplo

SELECT * FROM tabla_grande WHERE fecha>'2008-01-01' AND tipo=1 LIMIT 10 OFFSET 20;

Oracle mediante el uso de rownum en un query anidado

SELECT id, fecha, tipo FROM
(SELECT id, fecha, tipo, ROW_NUMBER() AS row_num
FROM tabla_grande WHERE fecha>'2008-01-01' AND tipo=1 )
WHERE row_num > 200 AND row_num <= 300

Informix mediante el uso de Skip y limit

 
SELECT SKIP 10 LIMIT 10  * from  tabla_grande

SQL Server
Con TOP y ROW_NUMBER() a partir de la versión 2005, para versiones anteriores como una propiedad del driver mediante obdc

SELECT TOP 2 * FROM (SELECT
   ROW_NUMBER() OVER (ORDER BY LastName, FirstName) AS RowNumber,
   *
FROM
   dbo.Customers) _myResults
WHERE
   RowNumber > 2

PostgreSQL
 

Usabilidad en aplicaciones empresariales

La usabilidad según wikipedia

"La usabilidad (del inglés usability) es la facilidad con que las personas pueden utilizar una herramienta particular o cualquier otro objeto fabricado por humanos con el fin de alcanzar un objetivo concreto."

"En interacción persona-ordenador, la usabilidad se refiere a la claridad y la elegancia con que se diseña la interacción con un programa de ordenador o un sitio web."

Referencia http://es.wikipedia.org/wiki/Usabilidad

En el mundo de las aplicaciones empresariales la usabilidad es un tema un poco olvidado.

En el enfoque “caro” contar con un área de Usabilidad que diseñe e investigue lo que está en el "top of mind" de los usuarios y la heurística común de las personas. Este enfoque es más usado para diseños de sitios web de contenido público muy grandes, es similar a la usabilidad del metro de la ciudad de méxico en el que todo esta señalizado, informado hasta el ultimo detalle por color, ideograma, titulo, mapas, pasillos, rutas, etc.

Aplicaciones J2EE con Spring MVC, Ajax y Marcos Javascript

Buscando como integrar J2EE con Frameworks JavaScript como alternativa a JSF / con ajax para armar una arquitectura de software para nuevas aplicaciones.

El avance de spring 3 ha sido realmente muy bueno para integrar Ajax.

Conceptualmente como integrarlos:

Una JSP normal decorarla con controles JavaScript.
Marcos Java Script

- JQuery, ExtJs, Dojo por ejemplo

La comunicación entre el browser y el servidor se integra en forma más natural ahora mediante Spring MVC que es capaz de interpretar JSON de forma nativa sin depender de un tercero como DWR.

En la capa de "servicios" a la manera de spring con inyección de dependencias, se coloca una capa de lógica antes de acceder al back end.

La capa que se integra al back se simplifica mucho al usar hibernate con anotaciones.
(Aunque muy cuestionable por algunos el hecho de usar anotaciones debido a la carga extra en el servidor)

Referencia:

Reflexiones del arte de la guerra de Sun Tzu aplicado al Liderazgo de Proyectos II

Este blog está dedicado a las reflexiones del arte de la guerra de Sun Tzu en el desarrollo de proyectos, la interpretación o similitud no es exacta. Los invito a enviar sus reflexiones o interpretaciones personales.

Referencia http://www.personal.able.es/cm.perez/el_arte_de_la_guerra_sun_tzu.html
Copyrights CARLOS MARTIN PEREZ 2010. All rights reserved.

Sobre la firmeza.
"Lograr que el ejército sea capaz de combatir contra el adversario sin ser derrotado es una cuestión de emplear métodos ortodoxos o heterodoxos.

La ortodoxia y la heterodoxia no es algo fijo, sino que se utilizan como un ciclo. Un emperador que fue un famoso guerrero y administrador, hablaba de manipular las percepciones de los adversarios sobre lo que es ortodoxo y heterodoxo, y después atacar inesperadamente, combinando ambos métodos hasta convertirlo en uno, volviéndose así indefinible para el enemigo.

Que el efecto de las fuerzas sea como el de piedras arrojadas sobre huevos, es una cuestión de lleno y vacío.

Reflexiones del arte de la guerra de Sun Tzu aplicado al Liderazgo de Proyectos

Este blog está dedicado a las reflexiones del arte de la guerra de Sun Tzu en el desarrollo de proyectos, la interpretación o similitud no es exacta. Los invito a enviar sus reflexiones o interpretaciones personales.

Referencia http://www.personal.able.es/cm.perez/el_arte_de_la_guerra_sun_tzu.html
Copyrights CARLOS MARTIN PEREZ 2010. All rights reserved.

1a Reflexión: Los 5 factores
"El primero de estos factores es la doctrina; el segundo, el tiempo; el tercero, el terreno; el cuarto, el mando; y el quinto, la disciplina.

La doctrina significa aquello que hace que el pueblo esté en armonía con su gobernante, de modo que le siga donde sea, sin temer por sus vidas ni a correr cualquier peligro

El tiempo significa el Ying y el Yang, la noche y el día, el frío y el calor, días despejados o lluviosos, y el cambio de las estaciones.

El terreno implica las distancias, y hace referencia a dónde es fácil o difícil desplazarse, y si es campo abierto o lugares estrechos, y esto influencia las posibilidades de supervivencia.

Breve de JSF: Obtener la ruta física del contexto de la aplicación web desde Java Server Faces

Este código puede servirnos por ejemplo en una ruta de descarga o carga de archivos.
La ruta física del contexto de la aplicación web o incluso de un directorio es posible obtenerla desde Java Server Faces.

Dentro de un Managed Bean puede ser en el constructor

public class MyManagedBean{

String realPath="";

public MyManagedBean{
 ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
 realPath=(String) servletContext.getRealPath("/"); // Sustituye "/" por el directorio ej: "/upload"
}

}

Distribuir contenido