jueves, 24 de febrero de 2011

Oficialmente odio Trac

Que cosa puede haber peor que tener que echar a andar un trac? Si de por si es un proceso engorroso y lleno de excepciones. Pensé que la sombra de mi pasado no me alcanzaría de nuevo. Ah si, si de por si es difícil instalar trac, ahora compliquen un poco la cosa utilizando un sistema zLinux; o sea, lo que no esté en los paquetes de instalación, a compilarlo todo a pata, librerías, dependencias y cuanta chiva se les ocurra, peor que un slackware.

ODIO TRAC!

miércoles, 23 de febrero de 2011

Mientras me consiguen ese ID del RHN

Estoy esperando un ID del RHN para componer una burrada que hice. Así que mientras eso sucede escribo algo por acá.
Nunca me había metido a alguna actividad deportiva en mis anteriores trabajos, solo hasta hace un par de semanas que organizaron aquí en la empresa varias actividades me anoté. Aparte de que el hombre del honda (o cero a la izquierda) ya tenía ganas de hacer equipo y algo deportivo.

Pero el deporte que escogimos considero no es muy demandante que digamos, cualquiera con un mínimo de condición física lo puede hacer. Adivine usted de que deporte se trata.......... nada?.............. Boliche.

Si, en el equipo de los BOFHos(patux, the_tre, haba, fer, César), no somos expertos ni profesionales, pero la intención era pasar un buen rato, y creo que conseguimos el objetivo. Ayer comenzó el torneo y como buenos novatos ni leimos el reglamento; vaya usted a saber para que es eso. Pensamos que el objetivo era tirar pinos y ya. Oh sorpresa, que nuestros contricantes eran todos unos pro, con 8 años de experiencia y con toda clase de conocimientos técnicos y etiqueta del juego de los pinos y la bola.

Pero todo eso venía en las reglas que omitimos leer; el jugador de la derecha tiene prioridad para tirar (nunca en 2 líneas al mismo tiempo), hay que felicitar a los del equipo propio y rival en un buen tiro dando palmada, y demás. También supongo que para aparentar ser mas profesional, en la próxima ronda llevaré una franela para limpiar la bola (no sé para que la limpian pero se ve profesional); escogeré 2 bolas y diré que una es para tiros rectos y la otra para tiros con chanfle. ¿Que más? Ah si, a pesar de nuestra novatada, quedamos como a ~30 puntos de diferencia de ellos (con handicap).

Lo que sigue desagradandome es usar los zapatos esos rentados, casi como dice Marge Simpson en ese famoso episodio de la temporada 1 "ash están calientes"; llegué a casa a lavarme con abundante agua y jabón mis pezuñas, no sea que se me pegue un champiñón de esos aguerridos. Me pasé también un poco de bengué en el cuello y el cuadrícep por que lo tenía un poco adolorido por recomendación de nuestros contricantes y ya. A ver como siguen los demás juegos, probablemente perdamos, pero la botana y el chocotorreo está buenero.

viernes, 18 de febrero de 2011

Pseudo curso de fabricación de cerveza sin costo

¿Que sería del mundo si compartiéramos todo tipo de información? Me acuerdo que durante la secundaria y preparatoria, algunas cosas no se decían y nunca supe por qué. Por ejemplo si alguien había arreglado algún problema de windows, no lo decía o te cobraban una pequeña lana por decirte como le hicieron. Claro, estoy hablando de las épocas en las que internet no era una opción y no se podía uno ir a buscar alguna referencia.
Linux y todo el FOSS funcionó y sigue funcionando bajo la premisa de libertad de información, eres libre de analizarlo, modificarlo, reescribirlo si quieres para adaptarlo a tus necesidades y también eres libre de cobrar por algún servicio que lleves a cabo con el; es válido.

Comento todo esto por que también aplica a situaciones como cocina, las recetas son secretos industriales celosamente guardados por que para algunos suponen muchos millones en ganancias. Recetas, fórmulas, técnicas, lo que se les ocurra.

Pues bien, ahora que he estado preparando eso de la cerveza casera, me topé con varios sitios de internet que dan algunos cursos de preparación de cerveza desde el grano. Lo que me sorprende un poco son los costos; en algunos casos llegan hasta los 4mil pesos y te dan también el equipo, aunque a decir verdad el equipo no cuesta tanto y la pura transferencia del conocimiento lo están tasando en unos 2mil a 3mil pesos.

Dada la circunstancia, y como tengo planeado hacer otros lotes de cerveza, están cordialmente invitados a un pseudo curso de preparación de cerveza sin costo aquí con su servilleta; con fecha por definir. Nomás no se amontonen.

jueves, 17 de febrero de 2011

Usuario de solo lectura en DB2

Bueno, lo que había hecho hace un par de días, de revocarle todos los permisos a las tablas al usuario no fué suficiente. El usuario 'readonly' seguía actualizando registros. Cual era entonces el problema?

db2 => get authorizations

 Administrative Authorizations for Current User

 Direct SYSADM authority                    = NO
 Direct SYSCTRL authority                   = NO
 Direct SYSMAINT authority                  = NO
 Direct DBADM authority                     = NO
 Direct CREATETAB authority                 = NO
 Direct BINDADD authority                   = NO
 Direct CONNECT authority                   = YES
 Direct CREATE_NOT_FENC authority           = NO
 Direct IMPLICIT_SCHEMA authority           = NO
 Direct LOAD authority                      = NO
 Direct QUIESCE_CONNECT authority           = NO
 Direct CREATE_EXTERNAL_ROUTINE authority   = NO
 Direct SYSMON authority                    = NO

 Indirect SYSADM authority                  = YES
 Indirect SYSCTRL authority                 = NO
 Indirect SYSMAINT authority                = NO
 Indirect DBADM authority                   = NO
 Indirect CREATETAB authority               = YES
 Indirect BINDADD authority                 = YES
 Indirect CONNECT authority                 = YES
 Indirect CREATE_NOT_FENC authority         = NO
 Indirect IMPLICIT_SCHEMA authority         = YES
 Indirect LOAD authority                    = NO
 Indirect QUIESCE_CONNECT authority         = NO
 Indirect CREATE_EXTERNAL_ROUTINE authority = NO
 Indirect SYSMON authority                  = NO

db2 =>


Básicamente aunque el usuario no tenía el direct SYSADM authority, si lo tenía indirectamente. Y de donde obtiene esa autoridad indirectamente? Me costó bastantes googleadas y chapuzones en la documentación, pero finalmente llegué al documento que explica que db2 mantiene la seguridad en base al sistema operativo, en base a grupos de usuarios. Este usuario pertenecía al mismo grupo que los administradores, así que tenía que sacarlo de ahí y generar un nuevo grupo para administradores y para usuarios de solo lecura, o de otro modo seguiría obteniendo un SYSADM indirecto.

$ db2 get dbm cfg | grep -i sys
 Federated Database System Support           (FEDERATED) = NO
 SYSADM group name                        (SYSADM_GROUP) = STAFF
 SYSCTRL group name                      (SYSCTRL_GROUP) =
 SYSMAINT group name                    (SYSMAINT_GROUP) =
 SYSMON group name                        (SYSMON_GROUP) =
 Priority of agents                           (AGENTPRI) = SYSTEM


El grupo del sistema que contiene a los administradores se llamaba STAFF y había que cambiarlo a DB2IADM. A su vez, había que agregar un grupo al sistema llamado DB2IADM y otro INSTUSER.
En DB2IADM ponemos al propietario de la instancia DB2INST1 y ROOT, mientras que en el grupo INSTUSER dejamos al usuario READONLY.

Después solo es cosa de cambiar el parámetro del sistema:

db2 => UPDATE DBM CFG USING SYSADM_GROUP DB2IADM
DB20000I  The UPDATE DATABASE MANAGER CONFIGURATION command completed
successfully.
db2 =>

Finalmente reiniciar DB2:

$ db2stop [force] && db2start

Revisar que el grupo ha cambiado:

$ db2 get dbm cfg | grep -i sys
 Federated Database System Support           (FEDERATED) = NO
 SYSADM group name                        (SYSADM_GROUP) = DB2IADM
 SYSCTRL group name                      (SYSCTRL_GROUP) =
 SYSMAINT group name                    (SYSMAINT_GROUP) =
 SYSMON group name                        (SYSMON_GROUP) =
 Priority of agents                           (AGENTPRI) = SYSTEM


Revisar que el usuario ya no cuenta con el indirect SYSADM authority:

$ db2 get authorizations

 Administrative Authorizations for Current User

 Direct SYSADM authority                    = NO
 Direct SYSCTRL authority                   = NO
 Direct SYSMAINT authority                  = NO
 Direct DBADM authority                     = NO
 Direct CREATETAB authority                 = NO
 Direct BINDADD authority                   = NO
 Direct CONNECT authority                   = YES
 Direct CREATE_NOT_FENC authority           = NO
 Direct IMPLICIT_SCHEMA authority           = NO
 Direct LOAD authority                      = NO
 Direct QUIESCE_CONNECT authority           = NO
 Direct CREATE_EXTERNAL_ROUTINE authority   = NO
 Direct SYSMON authority                    = NO

 Indirect SYSADM authority                  = NO
 Indirect SYSCTRL authority                 = NO
 Indirect SYSMAINT authority                = NO
 Indirect DBADM authority                   = NO
 Indirect CREATETAB authority               = YES
 Indirect BINDADD authority                 = YES
 Indirect CONNECT authority                 = YES
 Indirect CREATE_NOT_FENC authority         = NO
 Indirect IMPLICIT_SCHEMA authority         = YES
 Indirect LOAD authority                    = NO
 Indirect QUIESCE_CONNECT authority         = NO
 Indirect CREATE_EXTERNAL_ROUTINE authority = NO
 Indirect SYSMON authority                  = NO


Finalmente intentar actualizar algún registro y corroborar que el usuario ya no tiene capacidad de modificar los registros:


db2 => update DB.table set loginid ='foo@bar.com' where userid = 'DBADMIN'
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0551N  "READONLY" does not have the privilege to perform operation "UPDATE"
on object "DB.table".  SQLSTATE=42501

miércoles, 16 de febrero de 2011

Soñé con un concepto de videojuego que "no existe"

Alguien hágalo y conviértase en millonario.
Consistía en algo así:
  • Eran imágenes de diversas formas, circulos concéntricos, cuadrados, triángulos muy parecido a lo que hacen algunos plug-ins de reproductores de audio
  • Con el control de juego ibas destruyendo algunas piezas que aparecían en la pantalla y la música que iba sonando cambiaba dependiendo de lo que destruías
  • Las imágenes a destruir iban cambiando a cosas que tenían que ver con comics y la música comenzaba a formar tonos que tenían que ver con la temática en imágenes
Tal vez ya existe algo parecido pero no igual. Me da la impresión de que es algo como bit.trip

Talachas por aquí, talachas por allá

Se me solicitó crear un usuario que solo tuviera permiso de hacer 'SELECT' en un schema de DB2.

Estuve ahí leyendo documentos, y así tal cual, no se le puede otorgar permiso de 'SELECT' a un schema; éste solo aplica a las tablas. Así que consulté a la gurú de DB2 y me comentó que tenía que revisar que tablas pertenecían al schema y de ahí hacer el cambio.

Lo primero era consultar las tablas en el catálogo que pertenecían al schema:
$ db2 "select TABSCHEMA, TABNAME from SYSCAT.TABLES where TABSCHEMA = 'FOOSCHEMA' > /tmp/max.out

Dado que la cantidad de tablas por modificar eran más de 150, decidí hacer un script balín para modificar los permisos del usuario en todas esas tablas. Primero había que dejar un archivo con los puros nombres de las tablas separados de renglón en renglón; limpié el archivo de salida schema.out para dejar la pura columna que tenía el nombre de la tabla y lo envié al archivo max.out.col
$ cut -c130-180 max.out > max.out.col

Dado que el cut dejó muchos espacios en blanco sobrantes en cada renglón, los limpié desde vi:
:%s/ //g

Finalmente hice el script que otorgaría todos los permisos, después los revocaría todos y finalmente otorgaría únicamente el permiso de select:


Finalmente, en menos de 2 minutos se cambiaron esos permisos en menos de 2 minutos.
Si bien mi método no es el mas adecuado y podría mejorarse y reducirse, me resolvió el problema en ese momento y de modo sencillo. Y finalmente, leer documentación y preguntar es parte central de solución de problemas que uno no tiene idea como resolver.

martes, 15 de febrero de 2011

read.sh

Probando esta chiva.

La infantil actitud de la sociedad mexicana

A grosso modo hablaré de la actitud que tenemos la mayoría de los mexicanos respecto a lo de ajustarnos a lo que las leyes nos dictar hacer.
Desde el ejemplo mas bajo, un área de no fumar es el lugar en los individuos van y prenden su cigarro. Y si algún otro transeúnte les comenta que apaguen su cigarrillo, es casi ley que se irritará o seguirá fumando, igual que a un niño que le dices que no haga algo, su actitud lo llevará a hacer todo lo contrario.
En el cine, el clásico o la clásica pareja platicona; los callas y hablan más fuerte o con mayor frecuencia. Las cebras peatonales no se diga, los sitios reservados para el peatón como rampas, banquetas? Es la peor ofensa que alguien pudiera a hacer a alguno de estos individuos que van de aquí hacia allá por la vida ignorando que en esta sociedad debemos seguir algunas reglas.

En mi oficina, a la hora que suena el pterodáctilo (hora de la salida), hacemos una cola para esperar el transporte que nos lleva de vuelta a casa. Mientras esperamos, hay un individuo que ya van dos ocasiones me ha tocado presenciar regaña a aquellos que están fumando, dado que el sitio es un área de no fumar. Con tono firme y amable a la vez les dice algo como esto:
"oye disculpa, puedes apagar tu cigarro? aquí es un área de no fumar, allá (señalando el sitio) es el área designada para fumadores".
Las reacciones que he visto de los fumadores es predecible: infantil
- "ah si, ahorita, ya casi me lo termino"
- "ah, ya me iba para allá"
Pero ni se iban para allá, y ni estaban por terminarse su cigarro.

De donde obtuvimos ese comportamiento tan infantil los mexicanos cuando nos mencionan las faltas que cometemos? Pónganlo a prueba, así sencillo coménten a una persona que fume en área prohibida que apague su cigarro o se aleje, y es casi seguro los recibirá con una evasiva actitud infantil.

jueves, 3 de febrero de 2011

Crear problemas y ofrecer soluciones

No está de más decirlo o comentarlo, aunque en este blog hay como 5 lectores frecuentes (les voy a dar una tarjeta para perforar y recibirán un premio después de 10 lecturas); no sobra repetir como cometemos el error de quedarnos con la problemática superficial en casi todos los problemas de una sociedad.
A grandes razgos, todo proviene de una plática que estabamos teniendo mi fader, liss y yo antes de partir a la perla tapadita. El tema era la insuficiencia de los servicios médicos de urgencia que ofrece el seguro social. No voy a ahondar mucho, pero me parece importante recalcar como ese problema de insuficiencia en urgencias se debe a la incorrecta aplicación de las medidas preventivas en el ámbito laboral y del hogar para evitar saturar el servicio.
Me platicaba mi padre (el cual trabajó más de 3 décadas en el IMSS) que del total de personas esperando a recibir servicios médicos de urgencia, el 95% va a atenderse problemas que con medidas muy básicas se pueden evitar: diarreas que pueden evitarse comiendo en lugares limpios y/o lavarse las manos antes de comer, diabéticos por obesidad a punto de entrar en choque que podrían haber moderado su ingesta de alimentos, no se digan los accidentes de trabajo como manos, dedos amputados, ojos dañados por no usar lentes de seguridad, y muchísimos más casos en los que una concienzuda prevención podría haber evitado; sin mencionar que los costos por prevenir son abismalmente bajos a comparación de los costos correctivos.

Pero como en este país no se le castiga a nadie mientras haya dinero o intereses de por medio pues los individuos siguen trabajando en condiciones adversas sin que nadie salga sancionado, llevandose como factura a miles de empleados accidentados o incapacitados que a su vez saturan los servicios de salud.

Problemas de fondo:
El problema de las olas violentas en las ciudades del país. Con tristeza la opinión pública dice: creo mejorará la seguridad en las ciudades si los militares patrullan las calles. Ese no es el problema de fondo.

2. Crear problemas y después ofrecer soluciones
Este método también es llamado “problema-reacción-solución”. Se crea un problema, una “situación” prevista para causar cierta reacción en el público, a fin de que éste sea el mandante de las medidas que se desea hacer aceptar. Por ejemplo: dejar que se desenvuelva o se intensifique la violencia urbana, u organizar atentados sangrientos, a fin de que el público sea el demandante de leyes de seguridad y políticas en perjuicio de la libertad. O también: crear una crisis económica para hacer aceptar como un mal necesario el retroceso de los derechos sociales y el desmantelamiento de los servicios públicos.


Otro ejemplo:
Lo que nos han repetido hasta el cansancio: la vialidad en las ciudades mejorará si se hacen mas pasos a desnivel, puentes e infraestructura para el automóvil. Tampoco es el problema de fondo.

Pero mientras la opinión pública permanezca en ese estado complaciente y dócil, se pueden seguir aplicando las 10 estrategias de manipulación mediática.

Si, ya sé que brinqué de el saco de harina al saco de frijoles, pero en algún punto tiene que ver con el poco análisis de fondo que hacemos de diversas situaciones cotidianas y como nos regodeamos de lo ignorantes que somos; lo cual sigue alimentando ese ciclo.

martes, 1 de febrero de 2011

Segunda fermentación

La cerveza casera ha pasado por su primer fase de fermentación de 7 días. Según los consejos y gusto personal se hace una segunda fermentación para clarear la cerveza y elminar algunos elementos que podrían ser nocivos; esto se hace sifoneando el contenido inicial a otro recipiente evitando transferir los sedimentos. Se deja ahí nuevamente de 7 a 10 días. Finalizando este proceso se puede embotellar.

*** Advertencia: Contenido altamente intolerante en los siguientes renglones ***

Es altamente absurdo el nivel de comodidad a la que estamos llegando. El grado de hedonismo en lo que nos hemos convertido.

Si, nuevamente en temáticas urbanas y del auto; el fenómeno: Soy un holgazán que no quiere caminar
Creo que este tema es un refrito de un viejo post que hice hace unos años. Pero nunca sobrará mencionarlo de nuevo y ahora lo detallaré.
El fenómeno del holgazán consiste básicamente en un individuo que al llegar en auto a su destino, quiere estacionarse como si fuera su casa, o sea, de la portezuela de su vehículo a la entrada del sitio al que desea viajar; ya sea un consultorio, supermercado, tienda departamental, bar, restaurante, escuela, etc.

Lo absurdo es el hecho de que en esos escasos 3 o 4 metros a la redonda de la entrada quieran estacionarse como por consigna de muerte: "si no te estacionaras ahí, morirás tortuosamente". Y en la ejecución de su consigna se estacionan de modo imprudente en banquetas, rampas, camellones y los lugares más exóticos que puedan imaginar. Claro está, sin importar que los peatones no tenga por donde caminar al verse bloqueada una banqueta por un vehículo que pareciera tiene el derecho de estacionarse ahí.

Lo mas gracioso del asunto es que si uno observa a media cuadra o una cuadra de distancia; los sitios en donde estacionarse sobran. Por lo que deduzco, son unos haraganes buenos para nada que se complican la vida buscando ese lugar cercano para no caminar, perdiendo tiempo (cuando dan vueltas y vueltas y vueltas a la cuadra) con tal de quedar ahí "cerquitaS". Y como siempre, esto solo refleja la calidad cultural de esos mexicanos mentecatos.

Fin

AWS cpu steal time from T2 to T3 chart

The chart shows the same workload from T2 and then to T3. With metrics collected from OpsWorks