Esta semana que pasó fue bastante movida. Por principio de cuentas no solo encontré como transformar cierto contenido de sitios antiguos a un formato mas utilizables, sino que por fin, una dependencia gubernamental me dió acuse de recibo para mover algunas cosas de Lobo gris a Lobonegro, con lo cual puedo desaparecer ese cluster.

Esta semana estaré haciendo varios ajustes, y además hoy por fin me dejaron a cargo del proyecto RVM. Formalmente ya lo estaba, pero no me habían dado la explicación de que querían. En el transcurso de mañana hago las especificaciones funcionales.

La semana pasada me encargaron revisar el problema de un cliente del corporativo con Femsa y con una dependencia gubernamental. Por mi experiencia con esa dependencia en el pasado (en un asunto absolutamente externo y anterior), se que lo normal que se le hagan envios o entregas de un solo producto a la vez.

Sabiendo eso, esperé que me diera unos datos el de ventas:

1 ) cuantos articulos le mandan a la dependencia en un solo documento ?
2 ) pedi las claves del cliente con la dependencia.

Que bueno que por mi experiencia previa no empecé. Resultó que el problema complejo nunca me materializó. Asi que, preparandome para el caso de un solo producto, avisé que iba a revisar el historial del cliente del corporativo en el sistema que yo diseñé y que ahora lleva otra unidad de negocio.

Entre al sistema, y tres errores. Existe un solo documento y no cientos de historial… y al entrar a ese documento tres errores no verificados.

Al comentar aquí me dice esa unidad que no se ha sincronizado la máquina virtual (regresaron al modelo original de negocio que me habían dicho que siempre no, pero complicado con las máquinas virtuales).

Así que como no tengo acceso a la máquina virtual, y no hablo con clientes, o saco un ejemplo de aire, o espero a que me den más información.

Por cierto, de los dos nuevos programadores uno de ellos ha faltado casi cinco dias que yo me dé cuenta desde que entró, y eso que para su experiencia (casi nula) gana mas o menos bien. Mi sueldo es cinco o seis veces mayor al suyo.

Eso les pasa por contratar sin examen, y por dejar de seguir las especificaciones originales.

Por cierto, el cliente era una de las implementaciones estrellas del jefe de esa unidad… y si no sincroniza los datos, ni la pc virtual, no resulta funcional ese «sistema de implementaciones», porque no solo no es tolerante el proceso a fallas, sino que tiene demasiados puntos de falla.

Afortunadamente no tengo que ver con ninguno.

Aunque el proyecto de RVM no se ha empezado, ya les ha provocado quebraderos de cabeza a algunos programadores que no estan habituados a usar XML-RPC.

De momento, ya no me sorprenden pedidos del cliente tipo :

«Me puedes dar la bitácora de las pruebas de la dirección 10.x.x.x por favor ?»

Para cualquiera que conozca internet, es una estupidez pedir ese dato.

Evidentemente tengo mis bitácoras, pero como reviso las cabeceras, no uso los de la Red Local (por el 10.x sabemos que el cliente me pidió datos de SU PROPIA red privada), yo lo que tengo son los datos de su ip pública. Podría guardar los datos de tipo proxy, pero como pueden ser spoofed, solo guardo las cabeceras de la inyección XML-RPC en un campo cabeceras, el contenido en otro cifrado, y por ultimo la dirección ip en un dato de texto llano (al igual que fecha por TIMESTAMP y otros datos obvios , además de los usados por mis controles personales)

Pensé que el Mal Java y jquery era lo peor del software de la Asociación.

No.

Hacía años que no veia un código tan confuso en paginados, y además el jquery lo pasa por get.

Joins de 12 tablas (mal hecho), para formar una vista, pero además la vista no consideraba un campo número (importe pago) como número sino como varchar y no como número.

Eso provocaba además que si se pedía no pagados, diera error. Al hacer join contra una tabla de pagos, evidentemente solo aparecía si había pagos. pago = 0 siempre era falso, y otros errores similares.

Una vez el socio tñecnico me valide el directorio de socios de pagos, del colegio de profesionistas, hago un cambio de 45 minutos y paso a otro proyecto.

Una de las consecuencias del proceso de borrado del buzón de 460 mil (334 mil al momento )ha sido acordarme de tiempos pasados en tecnología. Cuando trabajé en supermercados por el 95, recuerdo que lo normal era usar MOSAIC y trumpet para ver el correo.

En este momento el problema son herramientas de monitoreo de servidores de dominios web, que sean mainstream, soportados por proveedores con mas de cinco años de experiencia, que soporten clusters (necesidades propias y del trabajo).

Los paneles de control como webmin, software libre, no son soportados y no cumplen las necesidades de cluster ni permanencia del trabajo, lo que me limita a hsphere, ccpanel, plesk, ensim, helm y direct admin.

Sin embargo, en cosas mas modernas me puse a buscar en el API de Cpanel (porque la asociación de marras está en un sitio bajo cpanel del que no tengo acceso como root) si existía una función para borrarel contenido de una cuenta de correo primaria (es decir, la automática, si no fuera esa con borrarla y recrearla).

Al final me puse a verificar el método simple de Fetch por CURL que he usado desde hace años para comprobar los contenidos de los diferentes servers/clusters bajo cpanel que he manejado. Si bien de momento tengo dos servers cpanel de los que soy admin, mas los dos del trabajo, creo que el poder de cpanel depende de otra cosa.

Básicamente, me interesa una API para paneles de control que me de informaciòn estadistica sobre cuentas de correo y bases de datos,asi como uso actual y disponible de disco y ancho de banda.

Un punto secundario es que las funciones de API de cpanel bajo Hash y no password lo hacen mejor que otros paneles para sistemas automatizados de verificación. Las Apis de Hsphere no están expuestas por los tres proveedores principales, y de todos modos los tres proveedores dan tan buen servicio que sale sobrando.

Sin embargo, algo esta extraño con Cpanel.

Por principio de cuentas, en el caso de un macrositio (con trafico a lo bestia) parte de las pymes, consume muchisimo ancho de banda, que a su vez no lo harían recomendable para un cluster.

Si hablamos de un dominio que consume de 100 a 120 gb de ancho de banda al mes, por le principio del 30% de repartición de recursos de los clusters, sale mas barato un servidor dedicado para el dominio en sí, que contratar el cluster del tamaño en sí.

Asi que eso me obliga a por lo menos, tener un servidor dedicado para los sitios dedicados cuyo conjunto de clientes usa demasiado ancho de banda. Por ejemplo, hace unos años tuve bajo CPANEL que administrar los sitios de una agencia de publicidad, que por separado manejaban un manejable 8 a 10 gb por sitio de ancho de banda, pero eran 12 sitios, lo que daba un consumo promedio de 120 gb, lo que para fines prácticos los volvía un macrositio. (offtopic, de todos modos se pasaron a hsphere y reduje su costo a la mitad )

De entrada, un sitio solitario, de un macrositio, en una instalación «limpia», (sin estadisticas ni respaldos) probablemente iría bien bajo direct admin o bajo cpanel con lightspeed.

Plesk es pesado, y cobran por dominio (y su api es muuuy rudimentaria). Los quebraderos de cabeza bajo un cluster plesk deben ser predecibles, y en lo personal por su medio infame de respaldos, solo los usaría para clientes que usen archivos .war, pero dejé de manejarlo hace unos tres años.

Helm solo sirve para ASP especializado y no tiene api para helm3 porque todo se hace bajo objetos com o activex. El control y la apariencia eran bonitos, pero después de las dos catástrofes ajenas que tuve que migrar a cpanel hace unos años, no gracias. Ni mis clientes, ni mis dominios donados los voy a poner en riesgo. La api de helm4 https://www.dcontrol.net/serviceapi/httpapi.aspx no se ve mal, pero no tiene funciones para retrieve de bases de datos, asi que , tampoco sirve para mis necesidades.

Repito, Básicamente, me interesa una API para paneles de control que me de informaciòn estadistica sobre cuentas de correo y bases de datos,asi como uso actual y disponible de disco y ancho de banda.

Ensim ahora es parallels pro, que no uso porque ensim no era fiable (desde el 2007), y su api tambien se ve limitada.

Esto me deja en la obligación de usar de monitoreo, a fuerzas, cpanel. Y además, hsphere sale el segundo candidato natural, porque complementa uno de los puntos debiles de cpanel en cuanto a sitios estáticos.

(tema para hablar otro día)

El trabajo del jueves al viernes quedó bien y la interfaz RVM es funcional. Sin embargo, los cambios de los ultimos días en el corporativo me muestran un problema en ciernes y no mio. El dia de hoy los dos programadores nuevos, que a la hora de la hora contrataron sinseguir el procedimiento que yo fijé en agosto/septiembre, están teniendo problemas. Uno de ellos es mas bien becario que programador y no vino hoy (2do dia en una semanas ?) Y el que se ve mas prometedor, pidió permiso. Por lo que se no le hicieron exámen de programación, solo entrevista (y las notas que vi le pusieron medio).

Es una consecuencia lógica de no pasar sufiiente tiempo haciendo la selección de personal. Los dos que contraté el año pasado me tardé casi un mes , y fueron los mas decentes.. pero la rapidez en la contratación en labores especializadas, es contraproducente. Afortunadamente no laboran directamente en la empresa en que estoy, pero la presión sobre el programador que queda en esa empresa, va a ser mayor y va a estar mas propenso a errores.

Paciencia y esperar.

Los 460 mil mensajes se han reducido a 420 mil. Por cuestiones de load no puedo usar scripts pesados de telnet ni de php, asi que estoy usando un método seguro pero lento. Cada paso elimino unos mil y dura 10 minutos cada paso pero es recuperable a fallos.

En cuanto a los servidores, de momento me encuentro con dos servidores cpanel, mas tres clusters que desaparecerán a dos. Me doy cuenta que hay problemas no solamente delconsumo de ancho de banda de algunas personas a las que dono espacio (que impiden un cluster), sino que algo esta mal con mayúsculas en la economía mexicana y rotación de personal. Por lo general C-P hacía su pago puntual (simbólico) pero en esta ocasión, no. Uno de los clientes fuertes de la PYME mas antigua ha cambiado a su personal de sistemas unas tres veces en el último año, y ninguno contesta lo evidente.

¿Quien está comprando los productos?

Los supermercados (SAMS, bodega aurrerà, comercial mexicana etc) que voy mas o menos frecuentemente, muestran una cantidad tremenda de espacios muertos no importando el día de la semana, así que si hago caso a los comunicados de AMECE sobre ventas y desplazamiento, se sigue vendiendo igual, pero el espacio muerto me lleva a la conclusión que se vende igual en dinero pero menos articulaje.

A su vez, por los cambios en la certificación del corporativo, y su relación con secretarías de estado, nos es materialmente imposible tener nuevos clientes hasta que salgan los nuevos parámetros, pero sè que los productos que manejan las PYMES propias o de las que soy apoderado legal, funciona. Sin embargo, las opciones relativas a servidores web y su consolidación tienen cierta relación y nada que ver con espacios muertos.

Tendré que echar números el fin de semana y un pronóstico de entradas, ya que debe quedar repartida la carga entre las PYMES.

He comentado que hace poco mas de seis meses recibí una llamada del corporativo donde estoy en este momento. Hay acuerdos pesaditos de Confidencialidad (mismos que yo escribí y fui el primero en firmar), pero a veces me pregunto si pasa con el conocimiento esotérico lo mismo que con los RVM (http://en.wikipedia.org/wiki/Relevance_vector_machine), en pocas palabras, si tienen métodos de auto corrección por relevancia iterativa .

Esta noche me espera una buena desvelada. He estado haciendo a ratos un módulo de RVM en php usando XMLRPC pero para que los clientes sean terceras personas. Ya hice el cliente en menos de cuatro horas el lunes o martes ignorando lo que hizo el programador jefe de otra unidad, mismo que me hizo perder dos días haciendo algo no funcional.

Reviisando con otra tercera unidad (donde estàn Aidee y jaime) ellos no tuvieron problema al leer el cliente.

El problema es que uno de los socios se comprometió a regresar información valida de una base datos (que no existe ni esta diseñada en este momento), con datos estadísticos de muestra, para servir a seis procesos XML-RPC. Lo que me obliga a desvelarme para tener para mañana tanto la estructura de la base de datos,como datos de ejemplo, asi como seis receptores de método (no complicado porque ya está), pero además automatizar un método de respuesta por cada receptor.

En la práctica implicaa hacer seis métodos que cada uno haga inserción y consulta a la base, así como una bitacora e interacción con la base de datos final.

Afortunadamente pude elegir y me aprobaron usar INNO.

Creo que lo mas trabajoso va a ser el parser para interpretar las respuestas sin usar clases como la que pasó el jefe de unidad mencionado. Espero tenerlo a la una de la mañana, pero no se si me voy por un ejemplo de array simple, o simpleXML.

Es cuestión de pensarlo.

Mientras, tengo que hacer pausa para ir al baño, y media hora para hacer el esquema mental antes de ir a la escuela por mis hijos.

Una de las cosas que me choca de java, es el problema para saber que version de java se está usando. En entornos web bajo php es mas fácil, por lo general el java que se usa es una librería llamada jquery, que por lo general se usa mal.

Y el mejor ejemplo lo vi en el sitio de la asociación, hecho por terceras personas. Básicamente manejan una actualización masiva de tarjetas de socios mediante AJAX e innerhtml, usando un campo calculado mal, que calcula la edad de un socio de este modo aprox en una orden sql:

year(curdate())-year(fecha_nacimiento) as EDAD

Ese es uno de los códigos mas ESTUPIDOS que he visto. Por principio de cuentas:

1 ) No se actualiza con el paso del tiempo o el dia que se muestra. Asi que solo se actualiza cuando se edita. El dato va eternamente desfasado
2 ) Lo correcto es similar a integer((curdate()-fecha_nacimiento)/365)

Pero por la actualizacion hecha por innerhtml, el código está en tres lugares diferentes y es dificil componerlo.

Existian tres opciones:

a ) Editar el código actual para poner esa formula.
b ) Poner en la entrada del administrador una rutina que haga
update tabla set EDAD=((curdate()-fecha_nacimiento)/365)
c ) Hacer el recalculo de la fecha en java y mostrar el dato (sale sobrando el campo en realidad)

Se hizo la opción tres.

Es un código poco manejable el existente, ya me autorizaron purgar los 460 mil correos de basura, y estoy tomando estad´ñisticas antes de hacerlo.

Hace un momento se leyó la alarma crítica del disco duro de la laptop dell. Mientras oí musica, grababaa a un usb, programaba y actualizaba archivos a un servidor.

Hddhealth avisa que para variar, le exijo mucho a la dell inspiron 1525, como a todos mis equipos.

A dejarla descansar. Haré listas de pendientes varios, mientras reviso el código del colegio de profesionistas, que es una porquería y me tocó arreglar aunque lo hizo quien sabe quién.

A bajar el ritmo en lo que la base enfiradora grande regresa la laptop a la normalidad.