Miguel Angel Huerta Gonzalez

De nobis fabula narratur

miércoles, noviembre 11, 2009

Observar (Watch) un directorio con python

Sobre python y directorios

Pues una de las actividades de mi trabajo (aparte de estar alerta al foco rojo), es transferir archivos de un sitio a otro y dentro del otro a otro, ¿que interesante no? Pues para hacerlo más interesante se me ocurrió automatizar todo el proceso.

Lo que hago es observar un directorio por si hay cambios (actualizaciones, borrados, nuevos archivos), si los hay los envio al servidor, en este primer ambiente tengo python instalado asi que encontré un codigo y le realice algunos cambios. Fueron pequeños cambios solo para notar los archivos que fueron modificados recientemente.

import os, glob, time
from os.path import join, getsize, basename

path_to_watch = r'D:\Documentos\bi\test'

before = dict ([(f, os.stat(join(path_to_watch,f)).st_mtime) for f in os.listdir (path_to_watch)])
while 1:
  time.sleep (60)
  after = dict ([(f, os.stat(join(path_to_watch,f)).st_mtime) for f in os.listdir (path_to_watch)])
  added = [f for f in after if not f in before]
  removed = [f for f in before if not f in after]
  different = dict ([(f, None) for f in before if before.get(f) - after.get(f) != 0 ])
  if added: print "Added: ", ", ".join (added)
  if removed: print "Removed: ", ", ".join (removed)
  if different: print "Changed: ", ", ".join(different)
  before = after

Como me impresiona la simpleza del código python, la forma en que uno lo lee es muy interesante.

Ahora en el otro ambiente no tenia python, asi que pues ha googlear un poco y nos encontramos con py2exe, y en el ambiente hostil pues ya esta funcionando a la perfección y sin haber instalado python allí


Sobre el trabajo en oficina

A veces me pregunto para que voy a la oficina, todo lo que hago lo puedo realizar desde mi depto, algunos sostienen que por las relaciones laborales, otros que pues uno se aburriría, pero al menos en mi caso y viviendo a 15 min de mi trabajo, pudiera ir a comer con los compañeros unas cuantas veces a la semana, ahí si entraría al equipo de fútbol, tengo que ir a fuerza a mis clases de ingles 3 veces a la semana, en fin. 

Aparte de que por alguna extraña razón me incomoda estar allí, digo, pareciera que no trabajo, pero en realidad el trabajo de un sysadmin no requiere 100% de atención, uno acaba sus monitoreos, realiza su documentación, se testean mejoras a los appliances y hasta ahí. En cambio, un programador pues tiene que estar tirando lineas o investigando como tirarlas, alguien de operación tiene que ver que el flujo del negocio valla bien, arreglar reclamaciones, en fin, es un tipo diferente de trabajo.



martes, noviembre 10, 2009

stopmotion con gstreamer

STOPMOTION o sobre energía solar y otros temas


He estado tratando de encontrar la mejor ubicacion para un experimento solar, por supuesto que necesito que le de directamente el sol por mucho tiempo, asi que me di a la tarea de tomar una foto con la camara de mi acer aspire one cada 10 min. en lugares estrategicos de mi depto. 

Para esto utilice un script como el que sigue:

#!/usr/bin/ksh
while [ 1 == 1 ]; do 
   gst-launch-0.10 v4l2src ! ffmpegcolorspace ! pngenc ! filesink location=foo$X.png; 
   let X+=1; 
   sleep 30; 
done

Esto generara archivo foo0.png, foo1.png, foo2.png, ..., foon.png luego con el programa stopmotion las podemos unir no dará un buen efecto...

Para instalar stopmotion endebian:
$ sudo aptitude install stopmotion

Como conclusión puedo decir que mi experimento fallo rotundamente, encontré un buen lugar, recibe casi 4 hrs de sol directas, pero necesito demasiado sol para poder calentar mi cuarto, seguiré investigando formas de calentar el ambiente sin consumir tanta electricidad. El gran problema de la calefacción es que se pierde demasiada energía con las corrientes de aire, sin embargo, necesitamos de estas para una buena circulación de aire, si no se empieza a enrarecer el ambiente.

Sobre la creatividad

Un día divagando con algún conocido se llego a lo conclusión de que grandes artistas y músicos habían compuesto sus obras cumbres cuando estuvieron casados y tuvieron hijos, algo en lo que yo no creía. Así que me di a la tarea de "medio" (me faltaron los hijos) comprobarlo, y si, hay algo, un tipo de motivación que no tiene nada que ver con el arte ni con la música, en general, al menos en este corto tiempo (en el que tuve  novia) fui más creativo, me aburrí menos en el trabajo y realicé muchas actividades, que sin esa motivación no las hubiera hecho.

Pero esa creatividad, ese algo lo descubrimos en otra gran conversación, de esas que se dan muy rara vez, en la que todo lo que nos pasa nos remonta al buen amigo Maslow, he ahí del porque de la creatividad...


viernes, octubre 30, 2009

F5 y monitoreo de pools

Si tienes un F5 y quieres hacer funcionar la siguiente iRule hay que hacer lo siguiente:


b pool all member  | grep -ie "+-> POOL MEMBER" | awk '{print "\""$4"\","}' | sort >/var/class/pool_member_status_list.class

Y con esto debe de funcionar la iRule y ya podremos monitorear el estatus de nuestros pools members.

Mi version es:
    BIG-IP 9.4.5 Build 1049.10 Final




martes, agosto 18, 2009

Viejas vulnerabilidades

Y en mi trabajo tambien.

En mi vida pense ver activa la vulnerabilidad de mostrar el codigo fuente poniendo una / al final de la pagina, pj, index.jsp/ (eso te muestra el codigo fuente).

Lo peor es verlo en un equipo ibm, pensaba que solo pasaba con los viejos IIS pero al parecer esa vulnerabilidad tambien esta en los servidores IBM HTTP Server (creo que estos son apache).


sábado, junio 27, 2009

Interfaces libres de Ajedrez

Hace un tiempo hice una modificacion en el programa glchess (incluido en gnome-games) para poder ver los comentarios que hay en una partida pgn, hoy en dia el cambio sigue aunque hay que mover una opcion en el gconf-editor, la clave es /apps/glchess/show_comments para que nos aparezca como se muestra en la imgen.


Despúes de eso descubri otra interfaz de ajedrez que me llamo más la atencion y empece a dedicarle tiempo (solo estudio del codigo), esa interfaz es pychess, sin embargo, aqui no hay manera de ver esos comentarios, aunque tiene un punto inportante de ventaja, y es que acepta la sintaxis FEN, para los que resuleven problemas esto es muy importante. Pueden ver una muestra en la siguiente captura.[dato curioso]
Pueden observar el error que comentaba hace 2 años, esta interfaz lo mantiene, se trata del caballo, lo que esta mal es la orientacion, casi en ningun lado (libro o programa) el caballo ve hacia la derecha [dato curioso]

Luego de eso entre a trabajar, y pues me olvide por un tiempo del ajedrez, hasta hace un poco (cuando entre al area de produccion), me encontre con mucho tiempo libre, y pues me dedico de nuevo a este arte del deporte ciencia

Hoy estuve pensando que ha de haber otra interfaz solo para el analisis, y asi es, se llama scid, en este hasta se pueden colorear las posiciones. Eh aqui un pantallazo:

Es muy interesante esta interfaz, pero no me gusta nada, esta fea y es poco usable. Aparte de que la estoy corriedo por un tunel ssh, puesto que no la pude instalar en foresight.

En las proximas semanas espero implementar un modo entrenamiento/training en pychess, con lo cual se puedan hacer comentarios a partidas pgn, poder colorear casillas, poder dibujar flechas y demas cosas, claro, esto no es una promesa, más bien un deseo.

jueves, abril 30, 2009

Sobre el internet y la difusion de informacion

O de la influenza.

Estos días en los que se ha paralizado un poco la ciudad del D.F., ha quedado claro que en México no existe la infraestructura necesaria para realizar las labores a distancia, al menos no toda, siempre hay una capa que obstaculiza esto, aclaro, comento lo siguiente desde una perspectiva muy personal.

En mi empresa tenemos equipos muy caros y muy buenos, pero por ejemplo, un problema con nuestra conexión a internet paralizo casi un día la operación normal. Ahora que necesitamos el correo electrónico, este pasa por otra capa intermedia que no estaba preparada para recibir tanto tráfico foráneo, y bueno, actualmente el correo empresarial es inutilizable. Pero bueno, se esta operando que al final de cuentas es lo que se desea.

Me imagino que esto pasa a mayor medida en otras instituciones, y esto se ve en lo poco actualizado que están los sitios oficiales del gobierno, cosas como estas:


Y puedo opinar y tal vez asegurar que ese portal se administra con webbuilder, cuando participe en un proyecto de gobierno resultaba difícil si no imposible hacerlo funcionar como lo que era, un gestor de contenido, no se porque para todos los desarrollos se tenia que usar el webbuilder (fueran contenidos o aplicaciones), por esa necedad (creo yo) México se ha perdido de varias tecnologías de información rápida, de una mejor integración entre secretarias o traten de verlo en un dispositivo movil, en fin.

Otra cosa es que las paginas suelen estar muy cargadas, banners, video, y ¿en donde esta la información?, al menos siempre eh pensado que entre menos cargado este un portal mejor se encuentra la informacion relevante.
Pero bueno, poco puedo criticar esta actitud, cuando me toco poder realizar un cambio no lo hice, y ahora hago menos por solucionar las cosas.

jueves, abril 23, 2009

De desarrollo a produccion, etapa 1

Documentándose:

Un programador esta acostumbrado a usar nombre grandes, pj, un nombre de paquete:esta.clase.hace.su.Trabajo y un nombre de método se puede llamar: empiezaALaborar(horaInicial, horaFinal, nombreTrabajador), etc..., esto hace simple, o relativamente simple, entender el funcionamiento de una función.

Sin embargo en el ambiente de servidores hay documentación como: este equipo es PCI y cumple con el OWA y LTM & ASM mediante un WAF junto con un TMOS, y el equipo que cumple con todo esto se llama F5, claro este equipo es una maravilla que hace balanceo, distribución, seguridad, monitoreo, en fin, un sin numero de funciones, si lo hubiera diseñado un programador le habría puesto equipoCarisimoQueHaceMilagrosConLaAplicacion o algo por el estilo, y si creen que son nombres cortos porque están abreviados, la abreviación del nombre anterior es ECQHMCLA...

Esta forma de trabajar ha resultado muy confusa, aparte de que son abreviaciones y uno tiene que saberlas, es más difícil recordarlas puesto que están en ingles y son casi infinitas, ejemplos sencillos y que todo programador entiende, HTTP, FTP, SSH, SSL, SFTP, NAT, VLAN, etc, etc, etc...

Tal vez no sea así siempre, sin embargo con apenas dos días que tengo en el área de producción así ha sido toda la documentación que he tenido a la mano. Sorprendentemente esto no cambia mucho la forma de goglear, si buscamos el API(una abreviación de desarrollo) de una función escribimos: java.math.BigDecimal add para que nos arroje resultados, si hacemos la consulta PCI OWA, nos dará el resultado deseado

miércoles, febrero 04, 2009

vpnc o sobre contraseñas

Me tengo que conectar a una vpn cisco, por motivos de mi trabajo, pero en linux no existe el cliente tal cual como en windos, aquel con el que un simple archivo .pcf sirver para conectarse. Pues bien en linux se usa el cliente vpnc, en el mismo link viene una explicacion detallada de los parametros que se necesitan para poder conectarse.

Bien, esto no es novedad ni ciencia, lo que me llamo la atencion fue que al descencriptar la clave de grupo la contraseña era demasiado fácil, era el nombre del grupo pero al revés, ni tampoco es de extrañarse si un tiempo nuestras claves de los servidores eran abc123(o algo asi de simple). Pero bueno, cada empresa tiene sus propias politicas y su forma de aplicarlas.

martes, enero 13, 2009

El arte de trabajar

No considero haber alcanzado, en mi arte, en el arte en que trabajo, el perfecto dominio de una técnica que me haya hecho realmente notorio, pues atrapado bajo la mecánica tiranía del diarismo, obligado a trabajar a un ritmo fatigante, perseguido por el tiempo, juzgo que mis trabajos están faltos de esa consistencia que conduce a detenida observación, que invita al análisis y cautiva la atención.
Ernesto García Cabral.

Últimamente he sentido esto en lo que me dedico, programacion, y es que considero que sigue siendo un arte esto de programar, más cuando te ha tocado mantener una aplicación que tenga unos 7 años de haberse hecho, cuando la tecnología con la que se hizo no había avanzado tanto, no había buenas prácticas, etc, etc. Es ahi cuando el trabajo se convierte en arte, y cuando hay presiones de trabajo el arte, pues ni que hablar.

Y cuando empiezas un nuevo lienzo, te das cuenta de que las primeras pinceladas siempre son burdas, siempre resultan feas, pero esto es porque no se ha practicado la técnica, no en la dirección correcta, no dirigida, no orientada. Y cuando estas en la direccion correcta, cuando piensas que el arte esta mejorando, cuando las pinceladas son más finas, entra la presión del trabajo, y todo el ciclo empieza de nuevo.

Y es por esto que empiezo con la reflexión de un grande en la caricatura, en la técnica del dibujo, maestro en interpretar su época, entonces, ¿cuándo alguien sabe que a alcanzado esa etapa en lo que todo lo que hace es arte, en lo que todo lo que hace va bien?. Ha de ser más difícil ser tan reflexivo y darse cuenta de que siempre hace falta dominar la tecnica, siempre se debe tener esa consistencia de dominar algo, de alcanzar una perfección, de tener un método.



Nota:
No se de donde proviene la cita, ni si es del chango, aunque es muy probable.

lunes, diciembre 29, 2008

arrancame la vida


Que buena novela, la pelicula me gusto, pero como siempre, leer el libro es mejor. No quiero comentar del libro, ya habrá muchas críticas que no quiero ni leer, me gusto y punto. Quiero comentar sobre la portada, aquellos bailarines eternos del tango, o de lo que sea que se baile así, el autor es el huatusqueño el difunto chango cabral, es inolvidable perderse en una busqueda por el google de su obra, de su tiempo, de su bohemia. Técnica inigualable, estudiada, planeada, cada linea representa algo una continuación de algo, cada dibujo terminado no tiene fin, cada caricatura reflejo de una reflexión interminable también.

Es una lástima que de ahora en adelante, probablemente más atrás aún esta portada desaparezca, y sea arrebatada por una portada de un alguién, de una persona, de algo que se puede alcanzar, ya no de danzas y músicos que tocan quien sabe qué (tal vez arrancame la vida), sino ahora tendremos que ver la película para entender la portada, que curioso.