May 01 2008
Archive for the 'Trabajo' Category
Feb 29 2008
Una Certificaci?n mas.
Durante las ?ltimas semanas he estado por asi decirlo, recluido en la planta de nuestro cliente, el motivo, la cerficaci?n de la mas reciente versi?n del uno de los principales m?dulos comerciales.
Los horarios son por demas extendidos, de hecho, el equipo completo se esta quedando en Toluca, por lo que la entrada es a las 8:00 AM y la salida tipo 10 u 11 PM.
La meta esta fijada para el pr?ximo dia 11, esperemos concluirla, anexo algunas fotos del equipo trabajando.
?
?
?
?
Feb 04 2008
Optimizando Querys en Sybase.
Cuando te encuentras con la presión de entregar un producto en un tiempo determinado y, seamos sinceros, han pasado cosas que no estaban en el plan, de tal forma que llevas ya con retraso considerable, escribes código que no es optimo del todo, funciona, si, pero no esta optimizado y como pasa frecuentemente, cuando es probado ya con un volumen de datos decente, y en ambientes mas cercanos a los que encontraras en producción, simplemente se demora eternidades.
En ese momento, es cuando tienes que entrar a hacer lo que un programador con mucha mas experiencia realizaría desde el principio, escribir código optimo.
Pero, entremos en materia.
Para poder realizar la optimización de querys, es necesario que entandamos un poco el como funciona el optimizador del engine de Sybase, ello nos ayudará a comprender el por que en ocasiones las cosas no funcionan como deberían funcionar.
Claro esta, deberemos conocer los elementos que intervienen al momento de resolver una consulta, y los cuales pueden determinar si esta será optima o no.
De tal forma, empecemos analizando estos elementos.
Índices.
Los índices en sybase son fundamentales para la optimización de las consultas, se puede decir que todas las tablas requieren de por lo menos un índice, el cual deberá estar conformado por los campos de la llave primaria, y el cual garantice la unicidad de los registros.
Los índices pueden tener las siguientes características.
Único.
No permitirá la inserción de mas de un registro con la misma información en cuanto a los campos que lo componen, es ideal para garantizar la unicidad, una tabla puede tener mas de un índice único, por ejemplo la tabla que almacene la informaci�n de contribuyentes puede tener un �ndice �nico para el campo de RFC y otro �ndice �nico para el campo de CURP.
Clustered.
Esta caracter�stica define el orden en el cual es guardada la informaci�n dentro de la tabla, ejemplo, en una tabla que no contenga un �ndice clustered, cada vez que se inserta un registro, este es insertado en la ultima pagina de datos disponible, es decir, los registros no guardan un orden mas all� del de su inserci�n, sin embargo, si una tabla tiene un �ndice clusterd, al momento de insertar un registro, este es puesto en el lugar que le corresponda de acuerdo al orden definido por los campos que integran el �ndice clustered, esto es muy �til para agilizar las consultas mas comunes, por definici�n, una tabla solo puede tener un �ndice clusterd, y se conforma, por los campos que le den el orden a las consultas que las agrupen en un orden jer�rquico mas com�n, ejemplo: en una tabla que almacene las ventas diarias de productos por cliente, y que contenga los campos:
Fecha
Cliente
Producto
Venta
Precio
Descuento
Impuesto
El �ndice clustered deber�a estar compuesto por los campos Fecha, Cliente, Producto, no tendr�a caso ordenar la informaci�n dentro de la tabla basado en los campos de Venta, Descuento, toda vez que esta no seria la organizaci�n jer�rquica mas com�n.
Query Plan
El optimizador de sybase realiza un plan de ejecuci�n de cada consulta que va a resolver, este plan de ejecuci�n es el que determina la forma en la cual realizara la b�squeda de los datos, por ejemplo, puede determinar usar un �ndice en lugar de otro (asumiendo que la tabla contiene mas de un �ndice), si creara una tabla temporal para realizar un ordenaci�n o una agrupaci�n
En el caso de los procedimientos almacenados, el momento que se crean dentro del engine de sybase, se determina el plan de ejecuci�n de todas las consultas que lo componen, dicho plan de ejecuci�n es almacenado al igual que la definici�n del procedimiento, de tal forma, que al ser invocado, solo se realiza el plan de ejecuci�n definido durante su creaci�n, esto puede presentar problemas de optimizaci�n posteriores, por ejemplo, tenemos una tabla de empleados la cual tiene solo un �ndice por el campo RFC, creamos un procedimiento almacenado el cual solo contiene una consulta a esta tabla buscando a los registros cuya fecha de nacimiento sea igual a un valor determinado.
Al momento de crear el procedimiento, el engine optara por hacer un barrido de todos los registros de la tabla, toda vez que no tiene ning�n �ndice que pueda ayudar a filtrar la informaci�n solicitada, el plan de ejecuci�n es guardado junto con la definici�n del procedimiento, y cada vez que lo ejecute, utilizar� el mismo plan de ejecuci�n, que pasar�a, si a la tabla del ejemplo le creamos un �ndice secundario que contenga solo el campo fecha de nacimiento.
El procedimiento almacenado ignorara el nuevo �ndice, toda vez que no exist�a durante su creaci�n, por lo que no fue considerado por el optimizador de sybase al momento de crear el plan de ejecuci�n, para solucionar el problema, bastar� con regenerar el procedimiento almacenado.
Debido a este punto, puede presentarse muchos problemas de optimizaci�n, es recomendable regenerar los procedimientos almacenados cuando existan cambios en la definici�n de los �ndices, o cuando el volumen de datos contenidos en las tablas ha cambiado dr�sticamente.
Estad�sticas de Acceso.
Sybase lleva un registro estad�stico del n�mero de p�ginas que debe leer para poder obtener un registro solicitado, estas estad�sticas est�n ligadas a cada uno de los �ndices que contengan las tablas.
El hecho que el optimizador de sybase decida utilizar un �ndice o no, puede ser provocado por la estad�stica de acceso al mismo, por ejemplo, en una tabla que normalmente contiene un volumen reducido de informaci�n, al ser alimentada por medio de un BCP con volumen mucho mayor, los querys pueden optar por no utilizar el �ndice que ya que el optimizador considera que al tener pocos registros es mas r�pido hacer un barrido que utilizar el �ndice.
Es recomendable hacer una actualizaci�n a las estad�sticas de los �ndices como parte del mantenimiento de las bases de datos.
Continuaremos en el siguiente post con los demas elementos.
Dic 26 2007
Premios
Al igual que el a?o pasado, durante la comida de fin de a?o de nuestro equipo de trabajo, se llevo a cabo la entrega de reconocimientos a lo mejor del a?o que termina.
Algunos ajustes fueron realizados al proceso de selecci?n y votaci?n, ajustes que garantizan la seguridad y seriedad de los resultados reportados.
Los ganadores de este a?o son:
Novato del A?o

Cesar Radilla y Jorge Avila.
Revelaci?n del A?o.
Fue declarado desierto.
Insoportable del A?o

Alfredo Gonz?lez
Can del A?o, por segunda ocasi?n y refrendando su titulo.

Juan Carlos Oliva.
Decepci?n del a?o.

Alfredo Gonz?lez
Pareja del A?o

Guadalupe Rosas y Alfredo Gonz?lez.
Rodilleras de Platino

Ricardo Arana
Eficiencia

Carmen Blando Garcia
Como menci?n honor?fica, Javier Mart?nez y Sergio de la Vega, por el intercambio de estafeta en el equipo.


El gran triunfador de la noche… claro esta, el se?or Alfredo Gonzalez.
Los organizadores iniciales del evento.

Carmen Blando, Un servidor y Carlos Gonzalez.
Nov 28 2007
Del SER al DEBE SER.
La transformaci?n de los procesos que se siguen, ya sea para la producci?n de un bien, o simplemente, en el d?a a d?a dentro de una? ?rea no es tarea trivial.
No solo basta el deseo de cambio del equipo, se debe de comunicar este cambio de tal forma que quienes interact?an con el ?rea que se esta transformando tomen conciencia de ello y coadyuven en el proceso.
Siempre debemos estar abiertos al cambio, con los tenis bien puestos, como se dir?a en alg?n momento, sin embargo, en algunos puntos, dependemos en cierto grado de quienes interact?an con nosotros, lo que frena nuestros proceso.
De tal forma, la distancian entre el DEBE SER al SER es muy grande, cuando las dependencias externas nos impiden llegar al DEBER SER, solo con un proceso de negociaci?n de alto nivel, lograremos en su momento llegar en conjunto a un DEBE SER.
Y, todo esto a ?que se debe?
A la implementaci?n de estilos de trabajo, (DEBE SER) dentro de ?reas que viven el d?a a d?a con un (SER) en donde, todo cambio es cuestionado y dif?cilmente se implemente en las ?reas con las que interactuamos.
Nov 19 2007
Buenas Nuevas.
Hace tiempo que no he escrito nada en este espacio, as? que he aqu? una r?pida actualizaci?n
Tal como estaba planeado, presente mi ponencia en el evento de Software Guru 2007, a mi juicio, esta fue todo un ?xito, me llamo mucho la atenci?n la cantidad de interesados en el tema del desarrollo ?gil, no esperaba tanta gente en la conferencia, sin embargo es muy bueno ver que puedes ayudar un poco a los demas.
Aun despu?s de la conferencia fui cuestionado del tema en los pasillo y en la zona de la exposici?n, esto me lleva a pensar lo importante que es documentar estos temas, pronto escribir? del tema en la p?gina de Joiz
En el evento tuve la oportunidad de saludar a un viejo amigo, tan viejo como mis viejos tiempos de SOIN y la asignaci?n en la cuenta de Televisa, todo parece indicar que los vientos soplan fuerte por el ?rea de Neoris, donde mi amigo tiene un puesto de alto nivel el la fabrica de software.
Tambi?n tuve la oportunidad de charlar y ver nuevamente a Gunnar.
En el ?ltimo d?a del evento se llevo a cabo una ponencia de Orlando Rinc?n, en la cual se presento parte de la forma de operar de Parque Soft en Colombia, lo que me llamo la atenci?n fue el manejo de la Pasi?n como uno de los motores primordiales para el desarrollo de software de calidad.
Espero poder asistir el pr?ximo a?o al mismo evento y por que no, nuevamente como ponente.
Cambiando un poco de tema, tuve la oportunidad de asistir a la ofrenda de d?a de muertos que el Gobierno del Distrito Federal presento en el Z?calo, algunas de las ofrendas llamaron mucho la atenci?n, les dejo un par de fotos, adicionalmente me gusto ver el centro sin tantos vendedores ambulantes, esperemos que as? este por mucho tiempo.





En otro tenor de ideas, en el ?mbito laboral, se han presentado cambios, los cuales nos han obligado a tomar roles que, aun cuando se ejerc?an en casos muy particulares (vacaciones), ahora son, por as? decirlo, el pan nuestro de cada d?a, de tal forma, que me queda muy poco tiempo para escribir, leer. as? como para hacer algunas otras actividades que me apasionan, tengo pendiente hacer algunas cosas con ruby, una idea producto de mi reunion con Gunnar. El equipo de trabajo esta creciendo, y estamos en un proceso de adaptaci?n de los nuevos elementos, a finales de diciembre y principios de enero sufriremos de presiones producto del acercamiento de nuestra fecha para hacer una liberaci?n, esperamos poder implementar las acciones encaminadas para evitar sobresaltos.
Sep 27 2007
Solaris 10
El d?a de hoy fui invitado a un desayuno en el restaurante del Lago, ubicado dentro del bosque se chapultepec. El motivo, una presentaci?n de las ventajas de Solaris 10.
Dentro de las cosas que fueron presentadas me llamo la atenci?n los siguientes puntos.
ZFS.- El nuevo formato del sistema de archivos de Solaris, promete un mejor desempe?o, as? como la promesa de no requerir fsck, se menciono el tama?o m?ximo de un FS, el cual estaba en los 16,000,000 de TB :).
Gratis.- Puedes utilizar Solaris sin costo alguno, si deseas soporte, este tiene un precio de 240.00 USD por a?o en computadoras Sparc o X86 con un m?ximo de dos procesadores, en este caso, el costo es menor que el que ofrece RedHat (arriba de los 300 USD) Novell (349 USD).
Contenedores.- Utilizando l?mites flexibles definidos por software, Solaris a?sla aplicaciones y servicios, todo ello para apoyar en la virtualizacion.
En fin, un gran numero de cuestiones que suenan interesantes, y de las que espero tener el tiempo de investigar, por lo pronto, en el mismo evento nos entregaron un DVD con ?Solaris Express Developer Edition?
Sep 21 2007
Nuevos Horizontes.
El d?a de hoy, un buen amigo me ha informado que ha sido asignado a un nuevo proyecto, el cual ofrece nuevos retos, mis mejores deseos para ?l y para su esposa.
Estoy seguro que pronto tendr? noticias de sus ?xitos.
Sep 21 2007
Function Points.
El pasado mi?rcoles termine un curso de Function Points Analisis, el objetivo, obtener los conocimientos necesarios para la implementaci?n de mecanismos que permitan determinar el tama?o de los proyectos actuales y los nuevo.
El curso fue impartido por personal certificado por el IFPUG, el cual es uno de los organismos encargados de dictar normas en dicho proceso.
El proceso de conteo de Function Points, es interesante, sin embargo es un hecho que requiere de mucha practica, espero poder escribir algunas cosas al respecto en los pr?ximos d?as.
Jul 18 2007
Conferencia aprobada
Reci?n he recibido un mail de los organizadores de SG07, en el cual me informan que mi propuesta ha sido aceptada, nos vemos en el evento el pr?ximo 29 y 30 de Octubre.
El tema a presentar ser?: «Desarrollo ?gil con SCRUM»
–Actualizaci?n–
La platica ya esta programada para el d?a 29 de Octubre? a las 12:40 hrs.
?