Es sábado, la fecha limite para entregar un sistema se acerca y tuve que ir a la oficina por el asunto de la pieza de lego del futuro ¿Cómo explicarlo? Yo creo que así.
Para más información recomiendo este libro.
Es sábado, la fecha limite para entregar un sistema se acerca y tuve que ir a la oficina por el asunto de la pieza de lego del futuro ¿Cómo explicarlo? Yo creo que así.
Para más información recomiendo este libro.
Hola mi estimadisimo par de lector@s. Como comente a principios de semana estuve asistiendo a un curso de SCRUM ¿Y qué es eso se preguntará usted? Una forma de trabajar que se apropio del nombre de una jugada del Rugby y fue desarrollado en los 90's por unos tales Ken Schwaber y Jeff Sutherland. Para que no se me valla a olvidar del todo lo que aprendí en este curso y para quien pueda querer consultar algo al respecto procedo a anotar aquí mis impresiones del curso y un leve resumen de lo que vi pero advierto desde ya que no pretendo escribir una guía completa... para los demás, de antemano pido me disculpen por aburrirlos y los invito a volver la próxima entrada o a ver alguna otra entrada random que les apetezca más, gracias.
"A todo el mundo le gustará Scrum;
es lo que ya hacemos cuando estamos
entre la espada y la pared."
-- Jim Coplien
SCRUM es un método de desarrollo de software ágil, pero a diferencia de lo que muchos directivos podrían pensar o querer no es ágil por hacer lo mismo más rápido, si no que involucra cambios más profundos. SCRUM y los metodos agiles son alternativas a otros metodos como CMMI a los que considera rigidos y pesados. La metodología ágil trabaja con personas para generar productos mientras que los metodos tradicionales se enfocan en CONTROLAR el proceso.
Scrum no es un proceso o una técnica para desarrollar o crear productos, sino que es un marco en el que se pueden emplear diversos procesos y técnicas. El papel de Scrum es hacer aflorar la eficacia relativa de las prácticas de desarrollo empleadas por usted, para que pueda mejorarlas, a la vez que proporciona un marco dentro del cual se pueden desarrollar productos complejos, que ha diferencia de los procesos tradicionales se basa en la experiencia empírica y en tratar a las personas como personas variables y no en los tiempos y el control, su objetivo primordial es producir algo útil con lo que el cliente este satisfecho y no en que el gerente se sienta que tiene un control total de lo que hace su personal en todo momento. Trabaja de forma iterativa e incremental aunque sacrifica algunas cosas como definir de antemano cuantas horas exactas va a tardar cada actividad durante todo el proyecto y eso puede darle temor a los directivos.
¿A qué se refieren los puntos anteriores? Primero a que SCRUM es adaptable, no pide mucha documentación, los formatos te los puedes inventar tu, promueve la experimentación continua para buscar mejoras y cosas así. Lo segundo se refiere entre otras cosas a que es un cambio drástico respecto a los procesos tradicionales pero no solo en la forma de trabajar si no de la organización y para muchos hasta de forma de pensar y por ultimo se refiere a que no funciona para todo tipo de trabajo debido a su naturaleza cíclica e incremental. Ahora procedo a hablar un poco más a fondo de cada cosa.
Primero ¿Cuando es útil SCRUM? Cuando el proyecto es lo suficientemente complejo como para durar al menos una semana (puede ser menos pero entonces tal vez otras alternativas sean mejores que SCRUM) y cuando nuestro dominio de ante mano de la tecnología y los requerimientos del sistema nos impidan hacer fácilmente una planificación exacta con un método tradicional.
Si el proyecto ya lo tenemos bien dominando entonces experimentar con SCRUM, pero si no, entonces si se sugiere intentarlo.
En SCRUM no se planea todo exhaustivamente al inicio del proyecto si no que se busca obtener requisitos prioritarios y poder crear en base a ellos una primera base entregable que pueda funcionar pronto, y luego tomarse un ciclo de mejora y si es necesario otro y así hasta que quede listo. En cada ciclo se puede planear que va a estar listo para el final de ese ciclo pero probablemente no se sepa cuantos ciclos serán necesarios a ciencia cierta aunque se puede tener una idea general. Los resultados de cada ciclo sirven para que el cliente vea avance y como base para el siguiente ciclo más depurado y con más información. A cada uno de estos ciclos se le llama SPRINT.
El corazón de SCRUM son los SPRINTs, que son iteraciones que se recomienda duren entre mínimo una semana y máximo un mes dependiendo del tipo de proyectos con que se trabaje y decisiones del equipo pero se ruega que en la medida de lo posible la duración de los Sprints sea constante pues se busca alcanzar un ritmo estable de trabajo debido a varias razones como la satisfacción del usuario y de los trabajadores en el equipo, para poder medir la velocidad de trabajo razonable del equipo y facilitar la planificación de trabajo futuro.
En cada sprint se debe de terminar algo funcional para el cliente y se debe empezar por lo más prioritario para el cliente ya sea porque es lo más básico o que genera más riesgo en caso de no estar. Lo demás se deja para posteriores sprints. Por eso es un método incremental.
Los Sprints se componen de: la Reunión de Planificación de Sprint, el trabajo de desarrollo, la Revisión del Sprint, y la Retrospectiva del Sprint.
AutoOrganizarse. Si el corazón de Scrum son los Sprints, La auto-organización de los equipos de trabajo es la clave. Consiste en que en lugar de tener roles fijos donde cada quien hace una cosa y solo esa, Scrum alienta la creación de grupos de trabajo pequeños de preferencia de entre 5 y 7 personas donde entre todos saquen la tarea haciendo lo que prefieran hacer pero sin que quede nada por hacer porque nadie lo halla querido tomar. Para eso se requiere un equipo comprometido y que todos puedan confiar en los demás dentro del equipo. El equipo debe tener la libertad e iniciativa de comunicarse entre si cada vez que sea necesario y tener retroalimentación para asegurarse de hacer las cosas bien. La comunicación oral cara a cara tiene prioridad dejando a la escrita solo como un medio de respaldo para conservar lo que no queremos que se pierda en la memoria.
Pollos y Cerdos. Si bien dentro del equipo de desarrollo no hay roles específicos pre-definidos por el método, si hay tres roles y dos tipos de personas en esto.
Un cerdo y un pollo van caminando por una calle. El pollo voltea a ver al cerdo y le dice: “oye, ¿por qué no abrimos un restaurante?, El cerdo voltea a ver al pollo y dice “Buena idea, ¿cómo quieres llamarlo?”, El pollo se pone a pensar y le responde: “¿Porque no lo llamamos Jamón y huevos?”, No me parece dice el cerdo, “Yo estaría comprometido, pero tú sólo estarías implicado”.
Entonces "los cerdos" están comprometidos en la realización del software con regularidad y con frecuencia, mientras todos los demás son "un pollo" - interesados en el proyecto. ¿Y exactamente quienes son los pollos y quienes los cerdos?
A los pollos también se les llama "stakeholders" y son los que no son miembros del equipo, es decir el o los clientes, los usuarios finales y quien patrocine el proyecto. Y los cerdos son el equipo que hace el software.
Roles del Equipo. Los cerdos son los que forman el equipo scrum, es decir el equipo y se dividen en tres roles:
El Propietario del Producto es el "cerdo" del Product Backlog. El equipo es el "cerdo" del trabajo del Sprint. El ScrumMaster es el "cerdo" del proceso de Scrum. Todo el resto de personas involucradas son "pollos". Los "pollos" no pueden decir a los "cerdos" cómo hacer su trabajo.
Estimación. Tienes una ventana de tiempo ¿Qué cabe en la ventana?
En SCRUM no se estima por horas si no en Puntos de Historia y esto es uno de los aspectos que requieren un cambio de paradigma que me parece más van a sacar de balance a los directivos acostumbrados a medir desempeños. Los puntos de historia son grados de complejidad de las tareas y ayudan a medir cuales y cuantas tareas entran en el sprint, es decir, en lugar de decir me tardo X horas en hacer Y actividad lo que pasa ahora es que tenemos un Sprint fijo para entregar resultados en digamos 2 semanas y lo que varia es que es lo que el equipo se compromete en tener listo para ese tiempo.
"La manera de enfrentarse a tareas imposibles
es cortalas a un número de tareas meramente
muy dificiles de realizar, y romper cada una
de ellas en un grupo de tareas arduamente
difíciles de realizar, y cada una de ellas
en trabajos complicados,
y cada uno de ellos..."
--Terry Pratchett
En Scrum además de no planificar las actividades en horas, se divide todo el proyecto en actividades que se hagan en máximo una jornada de trabajo y se pone enfasis en no dejarlas sin terminar. La idea es que todos los días el equipo valla haciendo actividades que pueda terminar el mismo día. Así, para planificar el equipo calculará la dificultad de los requisitos y asígnara cuantos días tomará hacer el trabajo, pero como la duración del Sprint es fija lo que haces es averiguar cuantas actividades es razonable que quepan en cada sprint y meter primero las que generen más valor y prioridad.
¡Si todo urge, NO urge nada! Hay que establecer y respetar las prioridades, dificilmente todo va a urgir en realidad.
Hay dos partes en la Reunión de Planificación del Sprint: la parte del "¿Qué?" y la parte del "¿Cómo?" En la primera parte, el Equipo Scrum aborda la cuestión del "¿Qué?". El Propietario del Producto presenta al equipo la parte más prioritaria del Product Backlog. Trabajan juntos para determinar qué funciones se van a desarrollar durante el próximo Sprint. La información de entrada para esta reunión es el Product Backlog, el último incremento del producto, la capacidad del Equipo y el rendimiento anterior del Equipo. La cantidad de Backlog que el Equipo selecciona es una decisión del Equipo. Sólo el Equipo puede evaluar lo que puede lograr en el próximo Sprint, aunque el Product Owner hallá definido las prioridades del cliente.
Una vez seleccionado el Product Backlog, se define un Objetivo para el Sprint. El Objetivo del Sprint es una meta que se alcanzará mediante la implementación del Product Backlog. Es una declaración que sirve de orientación al equipo acerca de por qué se está construyendo el incremento. El Objetivo del Sprint es un subconjunto del objetivo de la entrega.
En la segunda parte de la Reunión de Planificación del Sprint, el equipo aborda la cuestión del "¿Cómo?". Durante la segunda mitad de la Reunión de Planificación del Sprint (bloque de cuatro horas para un Sprint de un mes), el Equipo debe determinar cómo convertirá en un incremento, el Product Backlog (el "Qué") seleccionado durante la reunión de planificación de Sprint. El Equipo por lo general comienza por el diseño del trabajo. Mientras diseñan, identifican tareas. Estas tareas son las porciones detalladas del trabajo necesario para convertir el Product Backlog en software que funciona. Las Tareas se deben descomponer para que se puedan completar en menos de un día. Esta lista de tareas se llama Sprint Backlog.
En Scrum sabes cuando termina el Sprint actual pero tal vez no sepas cuando termina el proyecto total, los nuevos requerimientos generan nuevos sprints. Debido a sus planificaciones cortas, el SCRUM esta preparado para los cambios entre cada iteración, que en metodos tradicionales son más dificiles de adaptar y piden replanificar los requerimientos mientras que en SCRUM se toman en cuenta en el siguiente SPRINT.
Luego cuando ya el equipo se pone a desarrollar el avance se puede ir viendo y monitoreando rapidamente con un par de tecnicas, una es llevar reuniones diarias de no más de 15 minutos y de pie para limitar el tiempo y darle prioridad a lo importante. En estas juntas se deben revisar 3 preguntas con el equipo.
Esta junta es responsabilidad del Scrum Master y meditante ellas se puede ver a diario que todos los miembros del equipo avancen, en que avancen y que problemas hay, así a diario se lleva el control del proyecto y se atacan rapidamente las causas de problemas que puedan haber surgido el día anterior.
La otra tecnica es el uso de un tablero (Task Board) donde se mantenga visible que hay que hacer, que se esta haciendo y que ya se hizo. Se propone hacerlo poniendo en el de forma breve y exacta cada actividad.
Durante el sprint el equipo trabaja, el Scrum Master se coordina con ellos y retira los obstaculos que surgen durante el sprint ¿Y el Product Owner? Seguramente quedaron requisitos fuera de los compromisos del sprint en proceso así que el Product Owner debe aclarar con el cliente estos requerimientos para tenerlos listos para la planificación del próximo sprint. También es su labor mantener al cliente informado y lo suficientemente tranquilo para que no interrumpa al equipo de trabajo. El P.O. es un embudo de requerimientos desde el cliente hasta el equipo.
El resultado del Sprint es un entregable rapido para el cliente, el cliente lo revisa y puede dar su visto bueno o no, también es posible tomar nuevos requerimientos si los hay y correcciones o cualquier otro feedback que surja y con eso preparar que es lo que se trabajará en el próximo sprint y volvemos a empezar. Por esto SCRUM no funciona sin cooperación del cliente para obtener Feedback.
PRINCIPIOS DE SCRUM
SCRUM no debe tener presión, si hay presión no es SCRUM.
Por ultimo, quiero recalcar un punto fundamental de SCRUM. Respetar los tiempos (timeboxes), si algo no se alcanzo a ver en una junta en el tiempo dado es porque hicimos mal la junta o porque no era más importante que lo que si se vio. Si se va a acabar el tiempo del Sprint y no vamos a terminar tampoco se alarga el Sprint, si no que tenemos que aprender de esto y dejar lo pendiente para el siguiente Sprint.
Para más información: www.scrumalliance.org
Mi jefe directo me llamo hoy a la oficina respecto a un tema y me comento que me ve desanimado. Le imprimi esta tira comica y se la di.
La vio, la leyo... y se rio. No se hablo más del tema.
Buenas noches mis estimad@s cuatro lector@s, hoy comenzó el mundial de fútbol soccer y México se paralizo esta mañana. Me dieron permiso de ver el partido de la selección pero siempre y cuando no hiciera mucho ruido ni abandonará mi lugar en caso de algún trabajo que requiriera atención inmediata pero... ¿A quién engañamos? A esa hora los posibles clientes o cualquier otro ser capaz de generar una llamada también estaba viendo el partido ¿o no?
En fin, les dejo unas fotos de como se entera uno de los resultados de un juego de la selección en horas de trabajo... y que nadie se confunda, NO es queja, al contrario. Me parece un buen detalle.
Cya!
"La logica empresarial es cualquier cosa menos logica"
-- Gnoblis
La madriguera esta desierta, entonces dara igual si me desahogo un rato las desventuras laborales de la semana. Dentro de lo que cabe, me lo paso bien en el trabajo pero paso esto... lo explicare con una metafora para que quede más claro.
Supon que tienes un niño y lo crias, va creciendo y en la cuna que tenia ya no cabe ¿Qué haces? Logicamente lo que hay que hacer es cortarle las piernas y ya esta, con eso va a caber un tiempo más... ¿Qué? Así, la logica empresarial a veces es todo menos logica. Bueno, así pasa cuando sucede. El negocio prospero y los recursos para manejarlo se estan quedando cortos ¿aumentar los recursos? ¡Jamas! je je
El lunes todo lo que podia salir mal salio mal, ese es el resumen del pasado lunes, incluyendo unas horas extras, a la ratita en casa por cuarto día consecutivo y un insolente e hiper-activo niño rata. En fin, fue un día cansado en general. Odio los lunes y ellos no hacen nada por cambiar mi opinión.
El martes llovio en la mañana a la hora de irme al trabajo, pero en general todo fue cuesta arriba. Para empezar hubo que hacer unos cambios más de emergencia, de lo mismo que el lunes a nuestras aplicaciones... como cortarle los deditos al hipotetico niño de la metafora de arriba, en fin, no me afecto porque por mi manera de programar todas mis aplicaciones ya estaban listas para el cambio que se pidio... no dejar ninguna conexión inactiva a base de datos, poca cosa.
uff, ese mismo martes por la tarde paso algo, la terrible historia del cliente que no nacio, se las paso a relatar en forma un poco disparatada para proteger la identidad de los inocentes y de paso que sea más entretenido, más o menos así la conte en el chat del trabajo y me dijeron que gustaba la historia.
Esta es la triste historia del hombre que jamas nacio... o mujer, no se, da igual... Oh, si... lo recuerdo como si fuera ayer... corria el día del 11 de agosto 2009... momento, es hoy, el día que paso dije eso... decia, cuando un pobre incauto fue a hacer un tramite pero el no contaba con que ¡Jamas nacio! Este sujeto, segun su CURP nacio el 29 de febrero de 1958, es una historia de miedo ¡De horrible burocracia! ¡Teme a la burocracia!
Al tratar de hacer ese tramite, el sistema no lo dejo y el usuario dijo "¡Sistema malo! ¡Reconoce al señor!" Pero el sistema contesto: ¡NIGUAS!
Entonces el usuario lo acuso con el departamento de ayuda: "El sistema malo no quiere reconocer a un cliente y me contesta muy altenero", si, lo acuso al tiempo que lo señalaba con su indice en pose dramatica, más o menos como la ardilla dramatica.
Entonces el operador de ayuda lo medito un momento... "trabajar o no trabajar, esa es la cuestión"... pero se sabia la respuesta de memoria... ¡No trabajar! y entonces le paso la llamada al área que sigue para estas incidencias y se olvido del asunto, ya no era su problema.
En incidencias, oh, una pobre alma inocente y credula contesto, y jamas desconfio de la maldad sediciosa del usuario magico ni de la flojera neglijente del departamento de ayuda, muajajajaja y se puso a probar por si mismo y efectivamente, el sistema seguia dicendo que niguas. Y entonces penso, "¡ah, yo se quien programo eso! ¡Voy a hacer que lo cuelguen de las cejas muajajaja jaja y más ja!
¿Y que paso? Llamo al gerente he hizo un escandalo para que se pusieran histericos y dejaran como trepadera de mapache al pobre e inocente programador... pobre programador. Entonces reporto que "el sistema malo, por orden directa del aun más malo programador estan negandose a reconocer a un cliente... y ademas le enseño a decir niguas"
"Ven para aca, programador" dijo el gerente con toda la solemnidad que la inquisición requiere. Y el gerente le dice "se te acusa de enseñarle a decir niguas a un servidor y de no tomar en cuenta los años biciestos ¿Cómo te declaras?"
El programador contesta "Inocente, señoria" y entonces un momento de silencio sepulcral fue seguido de murmullos y cuchicheos en el juzgado. ¿Lo colgaran? ¿Le obligaran a comer verduras? Vealo en los proximos parrafos a esta misma hora y en este mismo blog.
Entonces el programador dijo, "me gustaria defenderme a mi mismo. Señoria... campesinos ebrios del jurado, yo les pregunto "¿Cual es la fecha de esa CURP?" y una voz dijo "29 de febrero de 1958" era el fiscal.
"¡Protesto! 1958 no es biciesto" grito el programador acusado a la vez que su propio abogado defensor.
Todos se pusieron a ver los calendarios y efectivamente, 1958 no es biciesto. Entonces febrero solo tuvo 28 días en 1958 y por lo tanto este cliente jamas nacio y no se le puede hacer su tramite hasta que cumpla 18 años, cosa imposible si no se digna a nacer primero, es que tiene que poner algo de su parte al menos ¿o no?
Y el fiscal colgo el telefono y corrio a esconderse... y esa fue la triste historia de un señor que vivio engañado toda su vida y eso que aun no se digna a nacer siquiera... por cierto, en realidad la CURP expedida por el gobierno y totalmente oficial dice 29 de febrero de 1958... mendigos burocratas brutos... en resumen, en mi empresa ese problema paso por 5 personas antes de que llegaran a reclamarme y ninguno se dio cuenta de que el 58 no es biciesto, saltar a la yugular tiene prioridad por encima de validar que lo que reclamas sea cierto o no, les digo que la logica empresarial no es logica y por eso tiras comicas como Dilbert son tan buenas.
~ Fin ~Dicen que esta anecdota antes mencionada es tan buena que compite con la vez que un usuario reporto que no servia el scanner y resulto que tenia apagada la computadora... hay cada gente en el mundo nada más robando oxigeno que bueno...
Ya hoy miercoles las cosas fueron casi más pacificas, por lo menos me prestaron un monitor para ver el partido de la selección y mi sintonizador de TV hizo el resto.
PD: Esta entrada se entiende mejor si has leido entradas anteriores en este mismo blog relacionadas a los temas menos entendibles arriba mencionados, habra quien no sepa quien es el niño rato por ejemplo.
A partir del día de ayer en mi centro de trabajo nos dan tapabocas y desinfectante para cuestiones preventivas ante la psicosis que se vive por el asunto de la influenza porcina, pero no todo es malo, habemos quienes aprovechamos casi cualquier cosa para jugar un rato.
Algunos compañeros hemos personalizado con bocas dibujadas nuestros tapabocas o también protegidos a los peluches decorativos de la siguiente manera.
Yo y mis dientes puntiagudos
Un tapabocas estilo Darth Vader
Dagget nos muestra un diseño que incluye nariz y resalta sus ojos de loco
Brian esta protegido
y también este pikachu
Por que a veces las cosas no son para tanto y llevarlas con humor sale mejor. Saludos y mantengase sanos
Mis nuevos carritos
¿A quien no le gusta(ba)n los carritos? A mi si. Como ya he comentado sobre mi oficina, me gusta tener en mi escritorio cosas que quiten la monotonia y me entrengan a veces. Y agregare un par de carritos a la decoración desestresante.
Hoy pase por el wallmart para comprar un CD en blanco para proximamente quemar el nuevo Ubuntu, la versión 9.04, pues planeo limpiar mi disco duro y hacer una instalación -probablemente limpia- pronto... y ya allí vi en oferta los carritos Hot Wheels, a $10 el que fuera y compre un mustang 71, un charger 69 y un camaro 69. Puro muscle car clasico.
El mustang se lo regale a mi sobrino, el niño rata, pero los otros me los llevo mañana a la oficina.
Saludos
Buenas noches mis querid@s cinco lector@s, hoy traigo a ustedes un pequeño 2x1 laboral, vamos primero con el más sencillo y chafa.
El año pasado en la 2da quincena de febrero el sistema de nomina imprimio en el recibo que comprendia del 16 al 31 de febrero y este año paso algo similar, solo que llego nada más hasta el 30 de febrero como pueden ver en el recorte abajo incluido.
Supongo que el año pasado llego hasta el 31 porqué era bisiesto.
Bueno, el anterior no tiene mayor gracia ya que la novedad se perdio el año pasado, pero el segundo caso si es más interesantioso. Resulta que ultimamente en la oficina es una de poner reglas que gracias a Dios no me han aplicado a mi, decia, como no tomar cafe en mi escritorio, no salir por suministros al minisuper en horarios de trabajo (no me afecta, compro mayoreo de cafe y galletas cada quincena), que cierran la cocina a las 3:30 pm, a muchos no los dejan escuchar musica, dizque que prohibieron los juegos de mesa, etc. Cada centro tiene sus reglas extra muy particulares también. Yo en lo personal estoy bien con organización de mis horarios y provisiones para el futuro más algunas condecendencias de mi gerente para con el personal de su centro pero otros no estan tan agusto y al parecer inspirados por un comic de Dilbert
alguien hizo una imagen como esta:Una imagen dice más que mil palabras
Pues si, las politicas de la empresa se limitan a prohibir la felicidad en el trabajo de sus empleados como si felicidad y trabajo fueses mutuamente excluyentes, o algo así dicen. A mi me hizo gracia, saque una copia y la pegue en el CPU de mi PC en la oficina. Hoy la vio mi gerente y le hizo gracia también. Veremos si se populariza en la oficina esa imagen.
Saludos.
¿Qué será ese aro?
La duda me corroe. Ayer por la mañana pusieron en unos pilares de mi oficina unos aros como se aprecia en la foto. No nos dijeron que son así que empezaron las teorias conspiranoicas. Hasta ayer iban ganando "cancha de basquetbol" o " van a poner macetas"
Bueno, tal vez lo sepa mañana. ¿Algun@ quiere tratar de adivinar que son?
Buena sombra, see
Buenas noches mis querid@s cinco lector@s y feliz fin de semana. Esta semana me la pase algo ocupado videojugando. Saben, esta semana no fui a comer a casa ni una sola vez, los ultimos días me quede a aprovechar esas horas jugando Luminous Arc 2 a la sombra del árbol que ven arriba.
Ya algunas veces les he contado un poquito de como son los alrededores de mi lugar de trajabo (<- es intencional) y pues me ha dado por salir a que me de el sol y respirar aire libre en lugar de quedarme dentro del edificio o de gastar casi una hora en transporte de ida y vuelta a casa.
Y pues, esta semana casi no he hecho nada interesante, solo la fui sobrellevando. Laboralmente fue un poco pesada y ya fuera no tenia ganas de hacer nada. Noches de Guitar Hero cuando mucho. Tengo flojera y se nota ¿Y ustedes? Me agrado mucho que este lunes sea día feriado, see...
Saludos y que la pasen bien.
Supongo que este mes los he aburrido más que de costumbre; varias entradas tecnicas y menos actualización que de costumbre aunque estoy satisfecho con ellas. Aunque también me gusta escribir para ser leido, pero sobre todo esto lo aqui esta es mi diario y esto es lo que ha pasado ultimamente.
Estoy algo cansado por la temporada, como mencione antes solo descanso un día y eso acumulado va desgastando pues el día de descanzo ya no quiero hacer nada y al siguiente ya es lunes otra vez. Extraño mi tarde de sabado, en resultado estoy haciendo menos cosas entre semana en mi tiempo libre, cosas más relajadas. Por eso estos días ni siquiera he entrado al foro. Me dedico a jugar Sonic Unleashed o Frets on Fire si esta ocupada la televisión. He mejorado un poco en el frets y disfruto mucho de repetir las misiones diurnas del Sonic. Como dice Kid "el placer de jugar un juego porque te divierte". Si, me estado pasando estos días "en neutral" dejandome llevar y se me estan pasando muy rapido, ya llevamos 2/3 del mes y casi no he hecho nada notable.
Planeo pasar los siguientes días pasandomela bien en el ocio porque la verdad es que es placentero. Por lo pronto hoy sali del trabajo a media tarde porque varios compañeros de trabajo (gerentes y lideres de proyecto en su mayoria) nos fuimos a comer al Restaurant Friday's de la isla Musala a cuenta de la compañia como detalle de fin de año; y de hay viene el titulo de la entrada de hoy. Como nota de cultura general para los que no conozcan Culiacán, la isla Musala esta en el rio Tamazula (uno de los tres que cruzan la ciudad) en el extremo oriental de la ciudad y de unos pocos años a la fecha la han llenado de establecimientos comerciales.
Fueron varias horas de sano esparcimiento. La empresa hizo una reservación para cincuenta personas incluyendo el pago de las comidas por adelantado. Yo me comi una arrachera y doble postre. Hubo barra libre también porque aunque en teoría eran dos cervezas por persona pero no fueron todos y al final se perdio la cuenta y las cien botellas ya estaban pagadas. También hubo rifas de aparatos electronicos donde me gane nada pero dos conocidos si, una TV de 22 pulgadas y un reproductor de DVD respectivamente. Me la pase bien, mejor que en la oficina sin duda.
Ya volvere luego con entradas más interesantes para ustedes también pero por ahora buenas noches y me voy a ver Dr. House.
Saludos.Buenas noches querid@s lector@s. Este fin de semana ha sido atipico. ¿Saben? Viene navidad y el consumo se dispara. Incluso ya me han dado mi merecido aguinaldo incluso. Pero no todo es tan bueno si trabajas en una empresa comercial como donde lo hago yo cuyas ventas son las mejores del año en estos días. Les contare un poco.
Resulta que a estas fechas les llaman -en un arranque de originalidad XD - la temporada. Durante la temporada es la unica epoca del año donde hacen valido el horario de mi contrato, gracias a Dios, que es de 48 horas semanales. El resto del año hacemos 45. Esto es para cubrir el horario de sabado por la tarde.
Ademas de esto, los domingos hay buenas ventas por lo que las tiendas requieren atención y por lo tanto también nos modifican los descanzos. En mi área no ha hido tan mal como en otras y solo hemos tenido que repartirnos los cinco domingos de la temporada entre los lideres de proyecto para asistir uno cada uno.
Yo decidi que a mal paso darle prisa y escogí el primer turno... hoy. Así es, hoy dormingo fui a trabajar. Esta semana me cambiaron el día de descanzo a sabado, ayer.
Ayer use el día en salir a cortarme el cabello a mi peluqueria de confianza donde el peluquero hace buena platica y también me recortan la barba y el bigote. Luego de eso fui a plaza Forum a comer con Zelda y Kid. Supuestamente el abuelo estaba organizando una comida de reunión de NGA pero como organizador da asco, ni siquiera lo vi. Me la pase bien en cualquier caso.
Mi segunda intención de pasar por ese sitio era buscar Guitar Hero World Tour en Game 4 Less, Liverpool o Sears... bueno, al menos precios. No habia tal. Llego a Game 4 Less pero se agoto. Ya llegaran más. Por lo pronto me compre el Castlevania Order of Ecclesia. Es un juegazo. Lo estuve jugando en una copia de seguridad pero se merece la compra este titulo. Ademas quiero el Castlevania Judgemet... Si, ya se que es una aberración y todo pero me llama la atención, soy un pecador lo se.
Eso fue ayer, hoy fui a la oficina de la primavera. Ya les he hablado de eso antes. No estuvo tan mal. En mi centro la figura de mayor autoridad hoy fui yo y me lo pase tranquilo. Hubo solo un par de incidencias de poca importancia que requirieron mi atención, el diagnostico fue rapido y nada más. Ambas antes de medio día. Comi halla mismo, jugue castlevania y vi tres capitulos de anime en esas dos horas de pausa.
Lo peor del caso es que mañana es lunes y no descance hoy, así que me largo. Ya voy a apagar la compu y a relajarme. Hasta mañana.
Buenas noches mis cinco lectores. Gnoblis pasa 8 horas diarias, a veces 10, en su trabajo. Hay una hora critica las 11:00 am cuando el desayuno paso hace mucho pero todavia falta un buen rato para la comida. A esa hora Gnoblis acostumbra tomar una taza de cafe y comer galletas.
Suelo comprar cada quincena una caja de 10 sobres de cafe cappuchino y una caja de galletas. Esta vez tuve una caja de paquetines que traia un letrero para colgar en puertas con la figura de mi heroe y modelo a seguir, Homero Simpson.
Brian posa junto a la nueva decoración
Por un lado dice "Si traes comida adelante" y el otro "Trabajador descanzando", así que son un adecuado Abierto/Cerrado para mi cubiculo y un nuevo toque de alegria a mi prisión primaveral.
¡Saludos!Buenas tardes mis estimados cinco lectores. Ha pasado ya un par de semanas desde que trabajo en las oficinas de la primavera. En la entrada anterior sobre esto les platique un poco y mostre unas pocas fotos y me dijeron que era un lugar bonito, así que esta vez les mostrare más a la par que comentare mis impresiones al respecto.
Vista al exterior desde una ventana
Tengo más espacio que antes en mi escritorio. La silla es igual, estoy un poco más lejos del gerente y tengo grandes ventanas con un agradable paisaje lleno de arboles. Me la paso relativamente a gusto, pero mejor cuando me asomo para afuera. A veces salgo a puente entre los edificios B y C y veo los cerros o me asomo al canal desde ahí. Hay un montón de peces y una que otra tortuga en él.
Espero se note donde estan los peces
Les mencione que el changarro aun estaba a medio hacer, sigue estando incompleto pero ya va mejorando. Ya pusieron la capa de tabla roca en el techo que oculta ductos y cables y atenua el sonido del aire acondicionado. El piso donde trabajo esta casi terminado en su totalidad, falta detallado en las escaleras. En cambio los pisos de abajo estan mucho más incompletos. Los pisos inferiores no tienen lamparas en escaleras y pasillos y entonces al salir uno avanza por una penumbra más o menos así:
El pasillo a las 6:30 pm
En esa oscuridad nos movemos usando las pantallas de los celulares como lamparas por lo regular. Si le suben el brillo al monitor alcanzaran a ver una figura en la oscuridad.
Durante las horas de trabajo hay dos momentos criticos en el día. Las 11 am y las 5 pm. Horas en las que hace mucho que uno desayuno o comio y aun falta rato para la comida o cena, según la hora que sea. Para eso suelo tener galletas y sobres de cafe capuchino. Para el caso de que los suministros se agoten o quiera otra cosa tengo la opción de la albañil store, la tienda donde venden chucherias y comidas dentro del edificio. También esta la opción de ir a la plaza San Agustin donde hay un mini super y una cocina economica.
Albañil store
La imagen anterior corresponde a un anuncio en la puerta de la albañil store, que como veran. Aceptan tarjetas de credito y en la compra de una sopa maruchan te llevas un gato regalado. A esas facilidades y ofertas no hay quien se resista ¿o no?
He aquí una evidencia de como es un área del edificio aun sin terminar.
Piso en construccion
Ya, en las partes mejor acabadas la tendencia arquitectonica es más o menos así.
Zona casi terminada
Como a medio día hace calor y eso del tiempo limitado muchas veces me ha dado flojera salir o quiero aprovechar el tiempo libre en otra cosa como jugar Castlevania, en ese caso traigo un almuerzo que consumo en el comedor. Tenemos refrigerador y microondas. Aquí engullo mis alimentos.
Engordadero
Después de alimentado prosigue buscar algún buen lugar; comodo, silencioso, solitario y tal vez un poco oscuro. Ambiente adecuado para jugar o tal vez ver algún anime en paz por hora y media.
Claro, no puedo andar todo el día deambulando por ahí. Pero tampoco tecleo todo el día. Por eso hay que tener algún elemento de relajación mental y para los dedos. En mi caso, cuando estoy pensando en como resolver un problema como los que he narrado en entradas anteriores sobre programación o en la inmortalidad del cangrejo, desde afuera no se nota la diferencia a simple vista, solo en los resultados y respuestas. Hay algunas actividades como la creación de estrellas de papel que entretienen las manos en esos ratos. "Evidencia de no trabajo" les llama mi gerente. Las de colores fueron folletos alguna vez.
Brian jugando con las estrellas de papel
Por dentro las áreas de trabajo son así. Este es el mio.
Escritorios de trabajo tipicos
Algo que me gusta del lugar es que quede más cerca de los patos. El departamento Quality Asegurance, alias QA... cua... pato. La gente de ese departamento me cae bien.
Una parte que veo muy positiva de la venida a la primavera es que como esta a las afueras de la ciudad y es un lugar privado y "nice" entonces no hay transporte publico. No tengo auto, así que a muchos como yo o que gastar gasolina hasta halla con esta crisis no les late pues hay camiones de transporte de personal hasta aca. Ya son dos para darse abasto. Antes gastaba tres pasajes diarios. Ponle que la quincena mes tenga 2 domingos, serian 13 días entonces 3 x 13 = 39 pasajes. A $6.00 cada uno serian $234.00 pesos por quincena. Casi $500.00 por mes que de ahora en adelante despilfarrare invertire en cosas más productivas.
Camión de personal
Ya por ultimo les dejare unas fotos más de los alrededores.
Muy cerca de La Primavera esta el cerro del Tule
Detras de ese cerro que se ve en la foto anterior esta el Splash Club, parque acuatico del que les hable hace poco.
Así se ve el edifio cuando regreso del mini super
Tomas alternas del canal y el puente que sirve para pasar a las casas que estan del otro lado.
Y bueno, eso a sido de mi lugar de trabajo desde que llegue aquí hace un par de semanas.
Sharp Develop
Buenas noches mis queridos cinco lectores. Como ya alguna vez he comentado antes, una parte de mi trabajo que me gusta es la investigación y desarrollo de soluciones nuevas. Soy programador, así que eso implica el desarrollo de sistemas o programas que hagan cosas que ninguno de los que ya tenemos desarrollados hacen.
Esto me gusta porque es muy interesante e incluso hasta si el objetivo no es alcanzado (cosa que no recuerdo que halla pasado, solo se tarda más) siempre aprendo algo, y por otro lado, al ser una cosa novedosa, no hay una medida fiable de los tiempos por lo que este tipo de desarrollos no me imponen un cronograma de trabajo y entregas que cumplir a rajatabla. Estará cuando este. También tiene la ventaja de que "estará cuando este" no le gusta a los jefes, así que me dan recursos y facilidades para acelerar el trabajo: internet libre y que yo no atienda llamadas si no es indispensable.
Bueno, basta de charla introductoria y vamos a lo que te truje... ¿Y de qué nos vas a hablar ahora Gnoblis? Pues de la investigación de turno que me ha absorbido los últimos días y que da titulo a esta entrada.
LA SITUACIÓNLa situación es esta; necesito hacer un repetitivo tramite en una página que implica el llenado de un formulario en una página web que no esta bajo mi control por pertenecer a un tercero, entonces le hago llegar la información a un web browser personalizado que hice basándome en el control ActiveX WebBrowser para controlar el motor de Internet Explorer (esto correrá sobre un Windows XP, es seguro que tenga IE), y así controlo automáticamente todo el proceso. La novedad es que introdujeron en la página una de esas imágenes de códigos generadas al azar con texto muy ofuscado para que no lo entienda ningún proceso automático de reconocimiento de caracteres.
El plan es poder obtener la imagen que el usuario debe reconocer, enviársela y obtener lo que el usuario tecleo. Para obtener la imagen probé varias cosas. La primera fue apoyarme con una aplicación que desarrolle para tomar una captura de pantalla automáticamente y con la capacidad de tomar todo el escritorio o recortar un recuadro indicado como parámetros. Lo primero fue solo incluir una llamada a esta aplicación a la que bautice ScreenShoter y de la que tal vez les cuente en otra ocasión. Pues bien, funciono pero solo es un uso temporal mientras se desarrolla la solución definitiva porque tiene dos graves inconvenientes.
- El explorador debe estar al frente al momento de la captura de la imagen.Debido a esto se requiere un diseño en la aplicación que permita la convivencia de múltiples instancias del programa de manera que tomen turnos para tomar el foco y ponerse al frente, y no se puede trabajar en esa PC porque si atraviesas algo frente a los exploradores la imagen que deseamos no saldrá. Por eso, esto fue un parche temporal para mantener la producción mientras al investigación real seguía.
Tenemos algunas limitantes, como el tiempo de desarrollo. Necesitamos una solución razonablemente rápida. También el uso de C# con el Framework 1.1 debido a que la plataforma de desarrollo de la empresa es Visual Studio 2003 y porque la aplicación base (el explorador personalizado) esta desarrollada con esto, y esta funcionalidad solo es un agregado al programa ya existente.
No se ha avanzado a un framework mayor porque las aplicaciones se distribuyen a muchísimas terminales y enviarlas requeriría la instalación de ese framework a todas las terminales, cosa que cansa solo de pensarlo. Se hará algún día pero hoy no.
INTENTOS QUE FRACASARON MISERABLEMENTEUn compañero intento realizar una aplicación para captura de imagen de ventanas utilizando C++ y el control de PIXEL para tomar directamente la imagen desde la memoria de vídeo, a un nivel más bajo que el actual ScreenShoter. Esta aplicación recibiría por parámetro el Handler de la ventana a la que queríamos tomar la imagen y así se controlaba el uso de múltiples instancias o que la ventana escogida no tuviera el foco. Y funciono hasta que se cerraba la sesión, a partir de ahí solo obtenemos recuadros negros. Al parecer si no hay sesión abierta, esta memoria no se utiliza, así que este método seguía necesitando un monitor y una sesión abierta.
Al tiempo que pasaba eso yo empecé a desarrollar un método para obtener la imagen directamente del axWebBrowser de la misma aplicación que controla la imagen.
Usando el objeto IHTMLElementRender y su metodo DrawToDC se puede pasar a una imagen de mapa de bits la figura de un elemento de la página abierta en el ActiveX WebBrowser o en una instancia activa de Internet Explorer (mediante handlers). Aunque en realidad solo logre hacerlo exitosamente en C++, donde puedes montar el mismo control AxWebBrowser usando MFC o API para crear ventanas pero esa es otra historia y no era el caso ponerse a reescribir la aplicación entera a C++ solo porque yo no encontré el modo de hacerlo funcionar en C#, que se debe de poder si investigo más a fondo pero no hay tiempo.
// Obtener el contenido de la página cargada en el exploradorEl código anterior copia el cuerpo de la página a un objeto IHTMLElementRender, que usaremos para dibujar el objeto en una imagen de mapa de bits que será igual a lo que se ve en el IExplorer. No es necesario usar el render para toda la página, pueden manejarse objetos individuales como en mi caso que solo quiero una imagen en especial. Por ejemplo, puedes localizar un elemento por su posición en la página si conoces sus coordenadas invocando a IHTMLDocument2.elementFromPoint(int x, int y); donde X y Y son las coordenadas. También esta IHTMLDocument2.images para obtener la colección de imágenes en la página y ya de ahí tomar la necesaria. Yo use esto ultimo porque así no me afecta la resolución de la maquina donde ponga la aplicación. Hay otras formas de obtener elementos específicos y ya no profundizare en ese aspecto.
El metodo DrawToDC para dibujar el control necesita un apuntador a una imagen de mapa de bits donde guardar la imagen que dibujará, así que además del elemento cargado en el render, también necesitamos un apuntador, una imagen de mapa de bits y un objeto Graphics.
// Imagen de mapa de bits que contendra el elemento dibujadoHasta aquí todo va muy bien, pero todos sabemos que cuando algo va tan bien es porque hay algo muy malo que no viste, y en este caso el punto esta en que el parámetro que recibe el metodo DrawToDC del render no es un puntero cualquiera, no, que va. Es un objeto del tipo mshtml._RemotableHandle que nunca supe bien como manejar. Si envías un puntero normal a DrawToDC, este simplemente marca error por parametro de tipo incorrecto. Intente crear una instancia de mshtml._RemotableHandle y pasar el valor del puntero común a este, pero a pesar de que ya no marcaba error, en realidad nunca logre resultados exitosos.
// Inicializar un objeto _RemotableHandleEn C++ no tienes estos problemas porque puedes generar el puntero con la instrucción CreateCompatibleDC que funcionan para DrawToDC, así que me plantee agregar la DLL gdi32.dll como referencia a mi proyecto para utilizar el método como en C++ pero otra cosa que probé antes me detuvo. Procedí a sobrecargar el método DrawToDC para que aceptara punteros comunes. Agregue el siguiente código al principio de mi clase
[Guid("3050f669-98b5-11cf-bb82-00aa00bdce0b"), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown),Ya con esto podemos enviar variables IntPtr al metodo DrawToDC del objeto render como algo normal.
// Guardar la página en la imagen bitmapEn la bella teoría funciona, pero ya en la practica, al igual que la primera aplicación, al cerrar la sesión solo salva recuadros negros. Hora de aplicar el plan C... solo que en ese momento me habría gustado tener más claro cual era ese plan.
EXITODespués de investigar un rato dí con el método DrawToBitmap. Esta instrucción es capaz de dibujar un control de una ventana como una imagen de mapa de bits, solo que no existe en el NetFramework 1.1, pues apareció con la versión 2.0
En fin, me la jugue. Para poder hacer el desarrollo instale SHARP DEVELOP 2.2, un IDE de programación .NET opensource gratuito. Hice una copia del proyecto, la cargue con Sharp Develop y lo actualice al nuevo framework y me puse a implementar el cambio.
// Declarar una imagen del tamaño del explorador¡Y voila!, con eso tenemos la imagen de la parte visible de la página. Según investigue, para obtener toda la página y no solo la parte visible esta la posibilidad de usar un método sobrecargado para inicializar el objeto Rectangle para tomar toda la página.
Rectangle area = new Rectangle(0, 0, axWebBrowser.Document.ActiveElement.ScrollRectangle);Lo intente pero siempre me dio una excepción "'object' does not contain a definition for 'ActiveElement' (CS0117)" y como yo no necesito toda la página pues no me puse a buscar a fondo porque ni como usarlo, pero ahí queda para que quien necesite una imagen de toda la página completa pueda ver si le sirve como punto de partida.
Bueno, como ya había mencionado, yo no quería toda la página, solo una parte. Para obtener la parte que quiero hice lo siguiente.
// Imagen que guardara el recuadro que me interesaLa función Bitmap.Clone() me permite obtener una copia de una imagen, ya sea completa o solo de las coordenadas y tamaño de un rectángulo indicado. También use en esta aplicación el parámetro PixelFormat.Format24bppRgb porque la aplicación que hará uso de estas imagenes solo soporta esa compresión como máxima calidad. El poder dar formato desde aquí nos ahorro un paso porque el ScreenShoter toma las imágenes a 32 bpp y usábamos una instrucción de ImageMagick para convertirlas antes de que la aplicación final empezará a trabajar con las imágenes.
Y bueno, mis cinco lectores. Perdón por aburrirlos pero esta semana eso hice en el trabajo y queria publicar lo que encontré por si a alguien más le sirve, pues yo también busque en páginas durante la semana, todo la investigación y desarrollo termina expresado como unas lineas de código.
Mis lugares de trabajo, antes y ahora.
Buenas noches mis cinco lectores. Hoy me he mudado de oficina. Les cuento que el área de sistemas de mi empresa a crecido y eso demanda espacio, así que ahora la empresa posee un área en unos edificios de oficinas dentro de la zona residencial conocida como La Primavera, una zona privada a las afueras del sur de la ciudad.
El día de hoy por la mañana desmonte mi PC, rescate en un par de carpetas los papeles importantes, tome mi libreta y demas. Mis poseciones personales como Brian, el peluche que se ve en la primera imagen ya me los habia llevado a casa desde el sabado. Por cierto, Brian se baño hoy y huele a suavizante pero esa es otra historia... decia, y esas cosas que no pueden faltar para distraerlo a uno en la ofina como el clasico cubo rubik, el montón de estrellas de papel que he hido acumulando, a las cuales mi patron llama "evidencias de no trabajo" y demas cositas así que le mantienen a uno las manos ocupadas mientras uno finje estar resolviendo mentalmente un problema antes de empezar a teclear código. Todas esas cosas me las llevare mañana a mi nueva oficina.
El día de hoy lleve un lunch porque tenia insertidumbre sobre como seria el día, al parecer hice bien y a la hora de la comida no me fui a casa, me quede en el comedor de la oficina a compartir el pan con los nativos del lugar y colonos que llegaron antes que yo para ir aprendiendo de sus usos y costumbres. Recopile información valiosa como que no hay ningún jefe en kilometros a la redonda más halla o de nivel más alto que tu propio gerente de centro, así que se vive en una saludable anarquia respecto a las reglas que intentan aplicar de las oficinas centrales donde si hay muchos ojos al estilo cinco miran y uno trabaja.
La vista desde el comedor
La vista desde el comedor es buena. El edifio tiene amplias ventanas, y me resulta muy reconfortante levantar los ojos desde donde sea y ver árboles afuera. En mi oficina anterior no tenia ni una ventana cerca... aunque habia casos peores como la ventana de la oficina de Fernando que va a dar a una pared de ladrillo que tapa la ventana ¬¬
Después de comer y dado que estaba en mi tiempo libre sali a corroborar la información que me dieron los nativos respecto a puntos estrategicos como la albañil store, el minisuper y demas lugares que por cultura general es útil dominar.
La "albañil store" es un changarrito donde los albañiles que estan trabajando en terminar las obras inconclusas... si, los estacionamientos estan en obra negra y hay partes sin detallar aquí y halla, ok, decia, donde se surten de cocas y gansitos, pero no hay que ser un mason como ellos para que acepten tu dinero. Si uno se quiere sentir más nice, también hay un minisuper en una plazita comercial un poco más lejos... donde me compre un cafe.
Vista exterior del edificio
Cuando anduve afuera inspeccionando los alrededores también segui el canal que se veia desde el comedor. Toda esta agua va y viene a un pequeño lago cercano llamado El Dique, y por estos canales entran y salen algunos botes desde casi los patios traseros de algunas casas hasta el Dique.
La marina
Por ultimo, para entrar y salir del sitio, la compañia puso un camión de personal propio así que me ahorrare los pasajes de transporte publico, cosa buena a la larga.
¿Qué opinan de mi nuevo área de trabajo?
Buenas noches mis cinco lectores. Este fin de semana luce laboralmente feo. Una parte de mi trabajo es hacer bots que automaticen tareas tediosas para evitar la molestia de entrenar un mono o peor aun, contratar a un humano que las haga, ambos son poco confiables a fin de cuentas.
Pues les cuento que una tendencia que me pone piedras en el camino es esa de implementar tecnicas para diferenciar a un usuario de un bot, como las tipicas imagenes generadas al vuelo para que escribas el código en ellas escrito, pero tan ofuscado que el bot no lo pueda distinguir. Otra va más halla y es que ademas de pedirte reconocer caracteres te pida que soluciones una operación matematica sencilla con ellos.
Bien dicen que el peor enemigo de un informatico es otro informatico... o por lo menos eso vi en una encuesta de \. una vez. Estoy desde hace tiempo en competencia con cierto sitio en especial que parece reaccionar a mis maniobras. Mando GETs y POSTs y de repente filtran parametros por URL, relleno modificando el Outer e Inner code del body del sitio y meten un loggin doble basado en un MD5 con una página extra. Lo supero y meten servlets para generar código dinamico, lo supero y meten FRAMES donde invocan pedacitos de otra página para que no aparezca su codígo en el body de la principal... es el cuento de nunca acabar y ahora estoy con una de esas imagenes ofuscadas que el OCR no es capaz de interpretar, pues hoy se me atravezo eso y creo que ha depender del ojo y mano humana de un usuario con todos los riesgos que esto implica. Creo que seran unos 3 días de diseño, desarrollo y prueba. Ya empezamos hoy porque este inconveniente detuvo la producción y eso pone histerico a más de uno.
Hasta eso que es divertido eso de superar el reto que pone el otro XD
En fin, deseenme HAX y prometo volver con ganas de relajarme y escribir un buen.
Saludos.
Creo que nos ofendemos en la misma medida en la que nos odiamos nosotros mismos.
-- Gnoblis
Ayer en el trabajo una señora que según esto es algo así como la encargada de acusarnos con el director llego escoltada de su lacayo de confianza a reportar que había un problema con uno proceso porque se quedaba un campo en blanco y venían afirmando que NOSOTROS teníamos un problema y tenia que quedar resuelto HOY, claro... el programa en cuestión fue programado por mi.
Para no hacer el cuento largo; el programa ya tenia un año y once meses trabajando de esta manera llenando un formato de otra área, el cual sufrió un cambio quien sabe cuando pero no causaba ningún fallo aparente ni me reportaron nada. Mi programa ponía el dato en su lugar, el formato validaba que todo estuviera lleno y me daba luz verde y salvaba los datos. El problema estaba en que ese formato es una página web, SOLAMENTE hacia la validación del lado del cliente con JavaScript, mismo que en algún punto limpiaba el campo y mandaba al servidor las cosas así y en el servidor no validaba de nuevo... es decir, le daban confianza ciega a un script del lado del cliente que cualquiera puede desactivar, borrar o modificar si quiere... y además ponen una animación flash de un reloj que indica que según te están validando pero por lo visto solo es perder el tiempo... una vil chapuza en toda la extensión de la palabra.
Se descubrió luego de la auditoría de ayer, me lo reportaron y encontré en poco tiempo el hueco en el proceso, ya estoy acostumbrado a hacer diagnosticos pero a ellos les encanta amenazar, supongo que se siente bien.
Cómo sea, yo en el lugar del programador de esa página más que renegar de que alguien encontró una falla de seguridad en mi sitio me daría vergüenza que fuera uno tan de principiante.
Los anteriores párrafos son claros y verdaderos, pero políticamente incorrectos. Bueno, al parecer mi tono los molesto, yo no lo note pero mi gerente me comento algo, que ella tenia no se que puesto y tenia que ser más político y toda esa basura... aunque la neta no sabia ni papa de que nos fue a reportar, posiblemente sea un ejemplo de Pijoski, decia... y voila, que se me sale otra incorrección política porque conteste que no importaba su puesto. Creo que no estuvo bien como lo dije... pues la expresión literal fue "no me importa" y no lo digo porque halla estado diciendo una mentira, si no porque mi gerente me ha respetado bastante, así que supongo que seria como pagarle el favor si atiendo a sus jefes un poco más... agrrrrr, no soporto lo idea. La verdad es que él sabe que digo las cosas como son y tomo los caminos más directos que se puedan, siendo claro y saco el trabajo rápido por que trabajo igual que como hablo y ya no me dice que sea empatico si no me aprovecha para sacar situaciones donde le tiembla la mano a la gente con sentimientos o quieren terminar algo de una vez por todas.
El trasero es para sentar no para besar.
-- Hank Scorpio
En fin, solamente hice un leve cambio en la aplicación que evitaba “el problema” y de paso era una demostración clara de lo wey que es quien sea que halla programado la página esa, tomaron más tiempo las explicaciones con ejemplos que el cambio y puesta en producción, y claro, me fui a casa a mi hora de salida puntualmente como se debe y les repatea... a mi me repatea lo políticamente correcto.
Esto de lo políticamente correcto me parece una estupidez porque esta lleno de eufemismos y usos incorrectos del lenguaje para que nadie se sienta ofendido o excluido, renombrar las cosas para que no suenen feo, no dar una opinión clara que pueda ser comprometedora o simplemente para sonar como si se supiera de que se esta hablando aunque no se sepa ni de que se trata el asunto; dando resultado a frases duplicadas, sinónimos poco claros o hasta hacer cosas en cierta clandestinidad y se va a poner peor cuando los actuales eufemismos se consideren ofensivos y se les tenga que reemplazar con eufemismos nuevos y más confusos.
Me parece de lo más cobarde, asquerosamente tibio y en realidad no lo comprendo pero el mundo laboral esta lleno, sobre todo donde se trabaja con cosas técnicas pero las decisiones las toman administrativos que jamas han tocado una herramienta. Estos últimos casos llegan a ser los más absurdos. Mas que tratar de ser amable y conciliador a veces parece que la idea es zafarse a futuro de cualquier cosa al tiempo que se da la impresión de "quedar bien".
En mi experiencia, a la gran mayoría de los mortales no nos gusta meternos en política ni de lenguaje pero muchos para dar apariencia de productividad lo hacen consciente o inconscientemente ya sea por no desentonar o porque se han rendido y han decidido tratar como los tratan los otros borregos.
Es curioso como esto empezó como una cosa de tolerancia pero claro, actualmente los políticamente correctos son unos intolerantes con todos los demás. Creo que nos ofendemos en la misma medida en la que nos odiamos a nosotros mismos.
Este tema da para más pero por hoy aquí corto y seguramente tendrá segunda parte como en su momento la tuvo La teoría del blog.
Buenas noches mis cuatro lectores. Esta semana ha sido laboralmente exigente debido a que el proximo domingo 27 entra en vigor una normatividad del gobierno para las AFORES (Empresas que administran los fondos de ahorro para el retiro de los trabajadores en México) para evitar robos de clientes y afiliaciones ilegales principalmente... y de paso meter más burocracia al tramite.
El caso es que como a Gnoblis no lo gusta ser molestado el fin de semana estos días le estubo poniendo mucho empeño a su trabajo y los frutos son dulces. Hoy se llego la hora de la salida, toda la oficina haciendo pruebas, los administrativos de la Ciudad de México en la linea telefonica y en conferencias constantes. Ajustes de ultima hora en las aplicaciones por aquí y por halla, acuerdos y afirmaciones para que todas las piezas del proceso embonaran y yo anunciando que me hiba a casa... así tan campante XD
Han de saber que yo soy programador, así que mi trabajo esta en desarrollo y mantenimiento de sistemas o por lo menos de partes de ellos para automatizar lo más posible los tramites y minimizar las posibilidades de error por medio de atajar lo más pronto posibles los motivos de rechazo en los tramites de afiliación.
El gerente me para el alto y me dice que no me valla aun hasta probar todo, pregunto yo si va a pagar horas extras, me dice un tibio tal vez así que contesto con un "tal vez me quede entonces" al tiempo que sigo avanzando hacia la puerta... me vuelve a llamar y me pregunta por mis aplicaciones, una especie de checklist.
Basicamente mi tarea es mantener el sistema de captura de nuevos clientes que se encuentra en los modulos de las tiendas, el menú que maneja toda aplicación que los empleados de tienda requieren y bloquear el uso de todo lo demas. Mi especialidad es lo que tenga que ver con sistemas web. Esta es la parte más o menos rutinaria pues es mayormente mantenimiento y un poco de atención al usuario y otro poco de desarrollo nuevo de vez en cuando.
Ese desarrollo nuevo y un poco en investigacíón de cosas novedosas para nosotros en nuestra área es la parte divertida del trabajo, como por ejemplo la aplicación esa para convertir las páginas de archivos PDF a imagenes individuales de la que hable antes y surgio cuando necesitamos manipular esos documentos. Me gusta porque me dan un tiempo de hacer basicamente lo que se me ocurra mientras funcione de manera razonablemente buena, sea factible y practico. Siempre aprendo.
Bueno, me desvie del tema. Decia que me esforce y todas mis aplicaciones fueron probadas ayer u hoy y ya 40 minutos antes de la hora de salida ya estaba todo identificado, documentado, visto por gente administrativa, copias repartidas a quien hiciera falta, respaldado en el repositorio y ademas deje a dos chavales que estuvieron involucrados en el desarrollo y pueden atender detalles de emergencia y que salen hasta las 22:00.
Fue divertido ver al gerente buscando excusas para que me quedará... no encontro ninguna y le pregunto a los otros desarrolladores si alguno necesitaba algun apoyo por que usase alguna de mis aplicaciones, pues todos los demas se quedaron ahí porque les faltaba alguna cosa u otra... pero nada, ningún pendiente relacionado conmigo. Y aquí estoy, bastante agusto.
Sali y me fui caminando a casa bastante feliz; la tarde, caminata y powA metal en mis audifonos. Llego y gracias a Dios, la casa vacia.... oh, tranquilidad. Hice la prueba fisica del día en el Wii Fit y sale 82.4 Kg, que historicamente es el menor peso que he tenido en 43 días que llevo con el Wii Fit.
Después de eso me puse a jugar Smash Bros Brawl, luego a cenar y mirame ahora, en mi habitación escribiendoles esto al tiempo que escucho unas canciones del grupo Saratoga que Kid hizo el favor de hacerme saber que existia, son un grupo español de metal, algunas canciones buenas.
Mañana sabado... quiero ver Batman. Por ahora le doy gracias a Jehová porque me esta tratando muy bien hoy. Bueno, me retiro y buenas noches a los cuatro. Saludos.

