Muchas veces se subcontrata por fuera a alguien que resuelve problemas. Es mas común que a mi me ofrezcan dinero por dar soporte como persona o empresa y arreglarles problemas o incidentes. Siempre que he estado involucrado en sistemas de tickets, pongo en ridículo a los demás resolviendo bien y rápido por lo menos cinco veces mas, y en ocasiones hasta 20 veces mas que los que se supone están en eso. Por ejemplo, con el cliente problemático hubo un momento que sin ser yo de planta (sino como mi empresa y resolver problemas) llegue a tener 1800 tickets resueltos, unos 3750 pendientes de los demás, y solo 5 resueltos por terceras personas, a las que acabaron corriendo.

Alla por el 2011 en la empresa de satélites usábamos la métrica de que cada ticket de la competencia era de 250 pesos por horario normal, mas 300 en el caso de ser festivo o después de las ocho e la noche. Durante toda la pandemia con el cliente problemático pude demostrar que resolvía a veces siete asuntos diarios (que debían hacer los difuntos de contabilidad) mas otras cosas. Resultado mi sueldo se super justificaba y por algo sigo allí y les dieron cuello a por lo menos siete personas que no hacían nada o casi nada (el que estaba en un conjunto musical, el de Covid, Su jefe, el jugador de Futbol americano transa que estuve apunto de mandar al hospital, el fierrero mentiroso, el que vendía teléfonos, el que estuvo terco en comprar la tarjeta de red que no era ) El único que mas o menos hacia algo era DMT que usaba cosas de Aspel y sigue haciendo cosas por fuera para el cliente.

Hacer la métrica de asuntos resueltos, o «tickets» por semana en la pandemia por lo general eran 4 diarios , y hubo semanas que de plano justificaba mas el triple de mi sueldo al resolver cosas, sin tomar en cuenta respaldos y cosas fijas. Nadie me lo pidió pero lo hice como parte de un resumen semanal. Y resultó bien para negociar otras cosas. Estoy pensando en implementarlo con el cliente de los monolitos por lo que me pidieron hoy, tres burradas que no vienen al caso.

El esquema de cinco minutos es una idea simple y larga y no solo pomodoro. Allá por el año 1992/1993 me cambiaron de puesto para no darme el que me correspondía, usando como pretexto la edad. El nuevo puesto no estaba mal. Pero mi nuevo jefe inmediato quería ese puesto para su sobrino y empezó a tratar de quemarme, tanto el como su sobrino. Me defendí haciendo un resumen rápido de actividades en una hoja de papel dividida en bloques de cinco minutos, y llegando a mi casa lo pasaba a maquina (nadie tenia impresora en esa epoca) asi que esa hoja se convertía en una relación de actividades hechas por bloques de cinco minutos. Cuando estalló el problema, quedaron en ridiculo completamente porque estaba la relación de lo que yo había hecho en bloques de cinco minutos…. los últimos tres meses. Incluso me trataron de regañar por hacerlo en horas de trabajo pero como no había maquina de escribir era obvio que lo hice en casa.

Lo he usado en otras ocasiones, por ejemplo, al entrar aquí en los monolitos lo hice durante unos cinco meses hasta que me di cuenta que aunque no entregaba el reporte ponía en ridículo el nivel de trabajo de los demás, no solo del área  (seis personas)cercana sino de toda el área mayor (30 a 60 personas) y aunque soy el único de sistemas de esa área, es algo absurdo lo que esta pasando.

Asi que a empezar a documentar porque y a partir de mañana como nota previa a hacer las dos cosas.

Hace unos años una pequeña empresa con librerías en GIT / GITHUB fue amenazada de ser demandada por otra empresa, asi que lo que hizo fue quitar todos su repositorios, provocando con ello problemas en muchos lugares, creo que hasta en kernel de linux, porque esta persona era sin saberlo la fuente de las rutinas left y right.

Composer actualiza las librerias de terceros. No me gusta usarlo por varias razones. De momento estoy en un server con problemas de SSH.

https://web.archive.org/web/20170710204208/https://www.codeenigma.com/build/blog/do-you-really-need-composer-production

  • large VCS repository size and diffs when you update code;
  • duplication of the history of all your dependencies in your own VCS; and
  • adding dependencies installed via git to a git repo will show them as submodules.

Asi es. La gente en general no se da cuenta que cambio de versiones  de PHP o de servers pueden tener problemas, pero activar composer a lo bestia no es buena idea aunque sea de moda.

Otro comentario en otra pagina menciona el problema del bloqueo de GIT por interfases firewall, o el consumo de ancho de banda en malas conexiones.  Despues de eso comentan:

https://www.ostraining.com/blog/coding/composer-cms/

«Composer has a myriad awful problems asides from attitudes, it has technical problems. I basically feel the same overall. I’ll point out the great firewall of chine problem has quite a large scope and isn’t entirely on composer though when it pulls stuff from git that is a questionable model as opposed to its own repository system.»

 

I don’t like the term but it generally is a best practice to not have builds depend on external resources.

When updating (resolving dependencies), it uses gigabytes of memory and that really makes no sense. It’s gotten slightly better in new versions but it’s still dog slow and really quite amazing just how much resources it needs. Out of a dozen package managers for different languages and operating systems there’s nothing at all approaching composer in terms of resource consumption. When it takes a couple minutes and over 4GB of RAM to upgrade a single package that’s just not acceptable.

Whoever thinks a system that takes several minutes and huge amounts of RAM to resolve dependencies in cases that should not be difficult needs their brain examined.

 

Por increíble que parezca, encontré un programador decente, que no puede, literalmente usar subversion por mas que le haya instalado Turtoise y otros clientes. Esto me lleva a una serie de problemas porque estoy acostumbrado a usar Snippets de pequeños subrepositorios, pero ese programador de plano no puede consultarlos. Asi que he tomado una decisión radical.

A partir de hoy estaré subiendo Snippets de código , principalmente php (los de ruby y de python si saben ver el subversion), para facilitar el trabajo de algunos de los programadores que tengo en mis razones sociales.

Por cuestiones de derechos y de uso comercial para aplicaciones propietarias, siempre he recomendado el uso de la licencia LGPL 2.0, ya que otras licencias tienen  problemas para los fines que me importan. Como no voy a permitir que alguien se beneficie del producto de mi mente, salvo casos muy contados, solo publicaré snippets o cosas que no pueden usarse para fines comerciales. En días proximos, empezaré a anotar un indice de Snippets en Gist.

 

 

 

En la mañana de hoy me desperté con un sueño bastante idiota pero que a la vez era una señal del inconsciente.

En el sueño Audrey Hepburn está tratando de ver que había pasado con una concesión de Microbús en Reforma. EN este punto mi sueño me decía, despiértate. Audrey Hepburn no tendría nada que ver con un Microbús, se murió hace unos 20 años, y no hay microbuses en reforma.

Observando dormido lo que pasaba en el sueño, el problema era que había concesiones para rutas de ida y rutas de vuelta.

Me desperté.

Ya en el trabajo encontré que mi cliente tiene un problema con core dumps que están creándose por un proceso que no daba problemas antes. Lo primero que me viene a la mente es un ballooning. Hay archivos de 125 Mb, pero eso indicaría que el dump es de 128 Mb aunque el max limit de php es 512.

Suponiendo que ese sea el caso, hay que cambiar el proceso de expansión del JSON fuente de 12 Mb máximo.

No tiene caso correr esto en un server dedicado y en un vps con ballooning tampoco. Por una parte me dan ganas de instalarles un Windows SQL server, pero si lo hago está el problema de la licencia. Si pongo un WAMP en un Windows 7 no hay mucha forma de exportar el resultado de los sigma reales que vienen en el JSON porque el cargarlo provocaría un core dump. La otra opción es no subirlo al server.

Lo que suena más razonable por licencias de Windows 7 existentes es un Oracle XE porque l base no llega a dos gb. Correr una orden para borrar lo que no sea sigma y volver a subir los valores sigma al server para consulta externa.

Esto cambiaria solamente que no sea el server el que obtiene los JSON sino una terminal de trabajo y el CORE dump desaparece al ser Windows.

Un Windows 2000 server viene siendo el Audrey Hepburn de los servidores. Un server Linux con ballooning un microbusero.

Así que, probablemente el factor sea usar Windows y no el server Linux para obtener el valor SIGMA de los scada.

Es día del amor y la amistad poco antes de la una de la mañana.

El dia de ayer, 13 me movi de un lado de la ciudad a otro. Primero para ver un cliente. Luego para recoger una documentacion para notario. Luego Inbursa a recoger los numeros confidenciales de la tarjeta de la empresa.

Después ir a la oficina, revisar que un proveedor/competidor de un cliente se esta haciendo tonto, y avisarle al cliente. Ya perdio 3 de 5 sitios web, a este paso pronto tengo los otros dos. Luego casa. Cotizar cambio de tickets, mandar correo a notario. Hablar con la gente de la sucursal que va a abrir en bajio la empresa que fundé en noviembre. Revisar estabilidad del cluster de clientes web y los respaldos previos a la actualización de Centos.

Casi es hora de dormir.

Me encuentro por una parte con sueño y por otra tengo en mi mente frameworks de java que tiene otro cliente. Es una sensación desagradable encontrar en tu mente lineas de node.js o jquery, cuando lo que deberías tener son detalles de una S3 para reparar las réplicas de archivo de un cliente que necesita alta disponiblidad y servir cinco imagenes de 400 mb a 300 personas. Y por otra parte soñar con interfaces que dan vista pero no funcionalidad, no es buena señal. Con un poco de suerte regresa aquella serie de sueños sobre YUI que tuve en el 2007 y que me llevaron a resolver de manera extraña el asunto de Monterrey y que tanto les gustó a los clientes de Monterrey. Pero soñar con node.js o jquery no es un sueño compatible con sistemas de bajo CPU y menos si usan explorer. Meter node.js cuando las personas no usan firefox siquiera no tiene caso, menos si usan explorer 6, y por seguridad resulta mejor en todo caso usar XML-RPC sea el browser que sea. Unos 20 dias mas y habré eliminado el node.js y estará en YUI bajo XML-RPC.

En cuanto al problema de los ISOS con las campañas publicitarias del otro cliente, como esta va a ser una necesidad «estable», Es muy probable que tenga que seguir el camino que encontre mas o menos cuando compre el disco duro, a traves del sistema cloud de un competidor de amazon, porque mediatemple y cloudflare son literalmente por un lado tomadura de pelo, y por otro placebo.

No se trata de un aviso de «el sitio esta fuera del aire», sino poder servir el mismo ISO desde cinco subredes clase a (supongo que el que firmó el contrato de disponibilidad se debe estar dando topes con la pared, y mas el que pensó que en México no se podía hacer eso, la llamada de la semana pasada para saber como lo estábamos haciendo fue muy buena), y lo malo es que aunque ya funciona que el ISO cambia cada 64 a 72 horas, cada dos dis y medio hay que subir muchísima información al bucket. Si lo cambio de proveedor al que estoy pensando quizá me pueda evitar el que el cliente use cyberduck y automatizarlo.

Pero sigo levantado porque tengo que estar a las cinco y media de la mañana, en cuatro horas, revisando que le paso al sistema SCADA de monitoreo del cliente principal. Estoy casi seguro que la interface que produce los xml por parte del distribuidor en mexico, esta detenido en el ciclo y no se si lo pueda arreglar desde teamviewer por la inestabilidad de ese server. Lo que me sigue sacando de onda es que mi proceso corre dos capas DESPUES del probable error, y que hay otra capa abajo del SCADA. Se supone que el que carga el SCADA crea un txt que el SCADA procesa y regresa un xml dando los tiempos y hashes. Luego se supone que ese dato es movido por un sistema legacy a otro server. Ese server que recibe tiene corriendo un script de bash mio, que jala un gem de ruby y despues a un php, para guardar en base de datos del sitio de cliente un pdf consolidado por hora,

El reporte de la falla lo dieron a las 18 y es… «no esta el reporte consolidado desde las doce», pero lo mas seguro es que se refiera a que no hay dato que consolidar por una falla de los pasos anteriores. Y como todos son intermediarios, menos el legacy interno , no me queda de otra que resignarme y cobrar porque la empresa detecte donde fue el fallo.

Al momento que yo recuerde, desde abril del año pasado han sido unos 10 a 20 consolidados que se han trabado y la única vez que el proceso falló de mi lado fue porque el ruby tronó porque el xml cambió de formato XSD al cambiar el firmware de una linea de producción y que nadie me avisó.

http://www.pcworld.com.mx/Articulos/24977.htm

https://web.archive.org/web/20130323085502/http://www.pcworld.com.mx/Articulos/24977.htm

http://www.elmonetario.com.mx/?p=33774

 

 

El departamento de seguridad interior de USA recomienda desinstalar Java. En lo personal siempre evito java al máximo. En algunas ocasiones ya he tenido que revisar sistemas hechos con librerías como node.js, jquery , y frameworks como struts o backbone.

EL sistema mas «intensivo» que he hecho en java los ultimos años es justamente el dashboard pero por requisitos del cliente, para hacer las sumas de una celda a otra no queda de otra si queremos usar look and feel de excel (en lo personal creo que para esa aplicación Visual Basic o .net les resultaría mejor, pero es decisión del cliente)

Normalmente es raro ver una tabla de datos de mas de cien campos.

Hace unos doce años me tocó modificar un sistema para Lucent Technologies que usaban para dar seguimiento a sus labores para Alestra y AT & T.

En aquella época acababa yo de salir de las gaseras, y justamente se llevaba tiempo trabajando con Eduardo en la primera Razón social. Nunca supe que pasó en cuanto al diseño pero un día me dicen que tenian problemas con un «brinco de registros» en un software de Visual Basic 5.0 para MSSQL 6.5 que era MARAVILLOSO en concepto, que se le había desrrollado y puesto a Lucent y en el que no tuve que ver en su formación.

Al poner manos a la obra resultó que como pensé, los programadores de Eduardo estaban usando DAO en lugar de ADO (y una orden en RDO que por entonces era imposible hacer en ADO de Alter Tables). El problema se debía a que los programadores esperaban 7.0 y se encontraron con problemas del collation.

Pero como iba diciendo, ya que arreglé el software y con tiempo libre por no estar en las gaseras, revisé con calma la base de datos y se usaba una tabla con mas de 700 campos.

El problema era único y la respuesta era eficiente y manejarlo por maestro detalle era de locos. En pocas palabras el objetivo del programa era controlar unos 600 datos de una «hoja central» donde guardaban todo el control de calidad y numeros varios de las ordenes de trabajo. Y no todas las personas, de todo el mundo, podían ver todos los campos, y algunas personas tenían derechos de escritura sobre algunos campos. Así que lo que se hacía era que, el instalador jefe por ejemplo tenía una vista de supervisión donde el y solo el podía poner la fecha de terminación, pero no veía nada de aduaanas, y el agente aduanal por decir algo, podía dar alta de las columnas aduanales relacionadas con la orden de trabajo.

A final de cuentas era una sola tabla consultada por unos cuarenta perfiles diferentes de usuarios que tenian acceso de consulta a solo lo que debían ver. Era correcto hacerlo de ese modo porque cada tres o cuatro semanas salían nuevos controles de calidad y mantener un maestro detalle para sesenta perfiles era una labor estúpida. Mucho mas fácil hacer que los nuevos campos fueran invisibles para todos, e irles dando los derechos como si fuera una red Banyan Vines ( http://en.wikipedia.org/wiki/Banyan_VINES ) en base a negación inversa

Después de aquello, nunca pensé que me iba a encontrar con la necesidad de hacer mas de 100 campos.

Justamente me estoy peleando con un software de control de produciión con dos líneas de producto pero que maneja mas de 400 parámetros dependiendo de las diferentes lineas de producción. Y como los totales deben ir en el resumen principal, lo mas sensato era una sola tabla, sobre todo porque simplifica los 200 campos informativos en sumas de javascript y se está simulando una hoja de excel que manejaban antes.

Mañana o pasado tengo que generar elementos de muestra simulando un año de producción, y empezar a graficar la captura.

Esta semana va a ser de las mas pesadas del mes. Espero para finales del 24 estar mas tranquilo.

Desde hace unos años tuve que decidir entre usar notepad++ y pspad, editores de texto para windows. Cuando uso linux suelo usar aptana.

Por lo general solo uso notepad ++ cuando tengo que editar archivos de varios mb, como 320 mb en adelante. Gracias a pspad y su sistema de cache temporal, no se perdio nada del cliente principal/trabajo anterior.

Mi proveedor de todas maneras sigue haciendo la recuperación, pero ya probé y se guarda perfecto en la base de datos, todo esta tranquilo.

Vale la pena usar este proveedor: Esta es la segunda vez que necesito un servicio de este tipo, y la vez pasada fue porque una programadora del trabajo anterior le dio en la torre a un directorio completo y era mas rápido un respaldo de modulo que descargar y descompactar 15 gb de respaldo de ese sitio

En el nuevo corporativo tengo asignadas dos cuentas de correo. Una personal y otra para pruebas, debido a que mi aplicativo va a estar enviando correos con xml y txt a los clientes.

Normalmente bajo todo de la empresa por webmail, y lo mio propio lo hago desde outlook express. El dominio de la empresa tiene el correo bajo Network Solutions.

Estuve haciendo pruebas y uno de los ejemplos, que me mandaron suelto, llego mal una Ñ. Revisaron el origen y estaba bien, el problema que encontré necesitaba seguimiento.

Tengo cuentas de correo desconocidas en gmail, yahoo y hotmail. No para usarlas sino para estas pruebas.

Pedir que me enviaran el ejemplo y en todas se ve bien.

Extraño.

Al hacer que me mandaran exactamente el mismo ejemplo pude descartar la fuente. De entrada en gmail se descarga bien con el mismo navegador, o sea que la opción de descarga del webmail de Network Solutions , mete un doble uuencode, y por eso la ñ me lelgaba con doble codificación.

Lo que deberé hacer es probar despues ver desde el imap de network solutions y con eso veo si lo descarto también o no.

que lata.

En este momento tengo en varios lugares establecidos sistemas de tickets, programados por mí, para pendientes de clientes. Algunos en python, uno en ruby, lo demás en PHP bajo GPL o LGPL.

Sugerí varios en el trabajo anterior, y los tenía implantados en el 2010 antes de la reestructuración, pero en una junta de junio del 2011 (la que fue de todo el día ) se hizo una presentación de 10 minutos que no decía nada, y decidieron usar un software propietario, sin licencia y muy pesado para una implantación PARCIAL y no metódica. La excusa que dijeron después era la opción para reaccionar/recibir correos de clientes. Dos de mis softwares lo hacían por IMAP.

Ahora me encuentro en una opción parecida. Resulta que el proyecto del mes por la empresa principal de las que contrataron a la PYME debo convertir unos xml/txt a otro formato. Algo muy parecido era el trabajo «inicial» de los «analistas» del trabajo anterior Lo que ellos hacían era adaptar un php a cada cliente.

Tengo que hacer algo similar, pero para un solo cliente corporativo. Solo que en este caso además que el código era confuso y las bases de datos no estaban optimizadas, no puedo por copyright reutilizar ese código, e inclusive ya lo borré de mis respaldos. Así que lo que hice fue buscar algo similar en internet (encontrado en 3 minutos con código libre en una revista española de hace varios años), y elaboré desde cero la validación de los XML que regresan los SCADA. Ya se guarda en una base de datos mysql el resultado de importar los XML de los scada, y me falta generar el sitio web con sus catálogos, pero tengo ya los ingredientes como los descuentos de burbuja .

Lo que está criminal es lo que noté desde entonces : falta de limpieza y enfoque en lo que estaban haciendo.

No es posible que en menos de 4 horas yo tenga funcionando adecuadamente un sistema de PROCESADO Y FILTRADO en base de datos de un xml de scada, mientras que ellos no quisieron jamás poner los servicios estadísticos que sugerí en el 2010.

Y aqui ya está la base de los servicios estadísticos, porque los datos exportados/explotados ya están en la base de datos, y se pueden filtrar.

Alla no.

Y tenian dos/tres personas dedicadas de tiemplo completo a hacer cambio a ese script personalizado, cuando podía hacerse por una sola persona (un programador real con el sueldo adecuado, ni siquiera se necesita alguien con mi experiencia y sueldo para eso), y así gastaban tres medios sueldos en algo que una sola persona pudo hacer. Esas personas, analistas, no analizaban. (quizá un dia explique lo que para el director de corporativo era un analista y que era un programador pero el concepto era una de las versiones mas enredadas que he escuchado)

Por mas que lo veo, las piezas del rompecabezas de lo que ofrecí en el 2010 eran evidentes. Aquí es un servicio añadido de lo que voy a hacer este MES, y en donde estaba antes, la mitad de eso, era el trabajo de tres personas durante mas de dos años.

Que horror.

A veces al hacer algo de cero por cuestiones de copyright (o por código basura), puedes hacer bastante Reingeniería y hacer algo evidente.

Las siguientes etapas me hacen creer que el demo está el viernes, por lo menos parcial. Dejaré las bases de datos al ultimo porque estaré corriendo sobre WAMPServer en lo que me definen servidor.