El ultimo bosque de nodos

He estado trabajando de a poco en poco en el conjunto original de dos grupos de 50 nodos.

En el segundo, hay una serie de nodos sueltos que pueden combinarse; combinar diez nodos en uno solo suena bien, pero no estoy seguro si vale la pena. Es un problema de cosas que se mueven sin motivo, o que no se mueven. ALgo tan absurdo copmo la pelicula encantada de Walt Disney. Es una serie de freecuencias que no tienen que ver y son a la vez todo el orden subyacente. Asi que noto que hay dos nodos del segundo bosque que pueden ser utiles, y una serie de diez mas que pueden combinarse, por lo cual, haciendo una inversion de 12 movimientos de nodos, el segundo bosque puede jamas ser necesario otra vez, hasta que lo sea por cuestiones de orden. Es decir, que sea de reserva al bosque primario.

Asi que es , casi el final. De un conjunto de doce grupos de nodos, ahora solo son dos grupos de nodos y algunos cuantos sueltos que apartan nombre para nodos.

Pero es un problema abstarcto que a la vez me permite entender el orden de las cosas; la misma belleza de la programación estructurada.

Veré en un tiempo.

Unidad de cd, otra visita al notario y de todo un poco

Hoy tuve que salir de urgencia a conseguir una unidadexterna de CD para instalar un linux en una maquina que va a controlar SCADA. Solo que la portátil toshiba, de estados unidos, con teclado sin ñ. trae un plástico que llena el espacio pero no trae unidad lectora. Así que en medio de ninguna parte tuve que ir a comprar un lector, que me salío a buen precio. Vi varias cosas interesantes; moverte en «horas de trabajo» como dueño de tu propia empresa te hace darte cuenta lo mal que está el país.

Este fin de semana además me di cuenta de dos cosas. Una, que voy a tener que hacer un cambio fuertecito de enfoque en unos seis años, y que como vaa ocasionar muuuchos problemas, mas me vale ir con el notario a que quede consancia para que no parezca cambio de último minuto.

Y otra, seráimportante dar de alta la razón social de junio no por tiempo ilimitado ni por tiempo corto (como las creadas para proyectos específicos en nayarit), sino por 23 años. Espero que no se me pase, pero tengo que ponerlo en los pendientes.

Con el ex cliente principal se sigue viendo descontrol. Siguen en mudanza. Supongo que mañana empiezo a moverme. Tengo también que conseguir un monton de bolsas de basura negras, para tirar el equipo obsoleto que tienen enel depósito de las gasolineras de zacatecas, y preparar las actas de destrucción y quienes van a ser los dos testigos. Supongo que uno es el responsable del depósito y el otro será el abogado de allá que verifica el seguimiento a las averiguaciones previas del administrador que mandé a la carcel.

Junta de Estornudos contra doberman y decisiones simples /dificiles/ extrañas

Hoy me presenté a las ochjo de la mañana en el mismo lugart para una junta que duró cinco minutos y empezó a las once.

Salí de camino al otro lado de la ciudad; a la sucursal que será la base de operaciones de mi gente con ese cliente.

En el camino, me tocó ver a uno de esos chachorritos de esos perros que suenan a estornudo (http://es.wikipedia.org/wiki/Shih_Tzu) con apariencia de maltés, jugando medio salvaje con un doberman enano bebe. El estornudo se tenía azorrillado al doberman. Se iba directo al cuello; me recordó la primera de las malteses buchon que murieron con el veterniario hace unos dos años. Mismo caracter dulce para humanos, mandón para perros.

Llegué a la sucursal, tompe a mi gente y nos fuimos a una plaza cercana a buscar sillas y otras cosas. Vi unas sillas muy buenas en Sams , de 650 pesos cada una, una impresora láser de 1100 , y un archivero con llave de 1300. Pero no llevaba mi membresía. Mañana tengo que ir a comprarlo otra vez, solo son 1800+ 1100 + 1300 =4200 y deducibles de impuestos.

Pero eso no era lo dificil / simple / extraño.

S necesito comer, como. Si tengo que tomar un avión, lo tomo. SI tengo que comprar computaoras o equipo de oficina, lo hago.

La decisión extraña simple y dificil, fue que desde hace unas dos semanas vengo preparando la salida de una situación conflictiva con un parásito que aparece alrededor de uno de mis negocios secundarios, Y hoy, ya tenía listo el correo, cierre y desenlace.

Una solución Brutal, pero simple y a la vez elegante.

Hay una averiguación previa abierta pero hay personas que no entienden. Es tan raro…. parece que quieren meterse en problemas para poder echarme la culpa a mi de sus proias vidas. A partir del 2007 que entré con una de mis empresas en esa línea de negocio, hevisto a esta persona, que no compite conmigo porque son servicios diferentes, hacer muchos errores. No es culpa mia que me haya llevado a este desenlace. Y todo fue muy simple.

Una Zanahoria de 1000 pesos, dos llamadas a celular, y cayó.

En seis años se verán los efectos secundarios. Espero que no se ponga violento el asunto; simepore existen los ministerios públicos.

Y mañana puedo pensar en eso tranquilamente mientras voy por la impresora y lo demás.

Por cierto, para mis lectores interesados en la comida, el plato de mañana es sashimi (filete de pescado) en un lugar de sushi, junto con unos futomaki.

Modelos abstractos, madrugada

El sabado me pidieron en la tarde, como a las siete, ir a la oficina de mi excliente principal hoy lunes a las once a una junta con el director general. Fui.

Solo que la junta no fue a las once sino a las tres y duró dos horas; perdí todo el dia pero ya recibí autorización para hacer un montón de cosas. Noté que EL director general y su hermano (que tiene un puesto de confianza y si desquita su sueldo) andaban un poco presionados, pero tambipén con pendiente porque no habían comido.

EN mi caso, durante años por necesidades de atender a mi hija o no descuidar la operación de mi empresa, comí por trabajo una vez al día (comida bien servida en base a carne, por lo general), y aguanto perfecto aunque sean dos o tres días de corrido con poca comida (inventarios, por ejemplo). Saliendo fui a comprar algo de comida, y me quedé pensando ue seguramente la secta templo de la serpiente emplumada se da de topes en la pared por las posibilidades que da el efectivo (aunque hablen pestes de que yo y mi familia comemos carne).

Cerca de la sucursal del cliente han creado un lugar muy buenbo que entre los guisos normales tienes salpicón de plato común, aunque estoy en contra de la ocmidas corridas por varias razones. La semana pasada por exceso de trabajo en casa solo comimos Kibbe crudo (carne) y pollo a la barbacoa. Esta semana el menú será similar pero considerando todo lo que me encargaron por hacer en la junta de hoy, tengo cosasmas importantes que hacer, y lo importante de la comida es que te permita desarrollar las actividades que necesitas sin que se te acabe la pila antes de tiempo.

Aqui son las 11:55 de la noche, y sigo pensando en modelos abstractos al mismo tiempo.

Cosas extrañas

Hoy ha sido un dia surrealista, en serio.

Saliendo de la nueva oficina del antiguo cliente principal, descubrí que hay perros garantizados contra el mareo. Cosas para escribir largo y tendido.

Luego, tomé Metro y en el metro por segunda vez en las tres veces que he usado el metro este mes, encontré un mendigo que se puso agredir a la persona que estaba dos lugares a la izquierda; por su aspecto parecía tener un cuchillo hechizo, y empezó a blasfemar cambiando la letra de una canción cristiana sobre Jesús, diciendo leperadas y pidiendo limosna. Hubo un momento mas cercano que el de la vez pasada, en que pareció que iba a tener que romper madres, pero se fue tal cual sin que pasara a mayores.

El de la vz pasada era un tipo que quería imponer collares de artesanía de prisión segun el mismo decía, y buscando contacto físico pero con una actitud derivada del obvio consumo de drogas. A ese lo bajaron del metro a golpes, creo.

Que de algo sirven los policías.

Y el tercer incidente fue un clásico reporte de lo que en mi empresa llamamos reporte de disco verde, que pude arreglar relativamente rápido. Estaban preparando mientras un trailer para 200 cajas de documentación a archivar del cliente del principio.

Mudanza del cliente

DIcho y hecho. Lo bueno es que conocía bien lo que debia hacer. Hice tda mi mudanza con las de mi personal en menos de dos horas, incluyendo servidores.

Y todos en estado de schock.

No mi gente, los de ese cliente. No estaban muy conscientes de su cambio de domicilio, y al actuar yo fue evidente, y eso que era del otro lado de la ciudad.

Ahora hay que organizar muchas cosas en cuanto al cliente, pero supongo que se van a tardar unas dos o tres semanas en centrarse y adaptarse.

Cosas de naturaleza, tiempos y memoria

Casi mediodía de lunes.

Es una semana brutal. Veo un problema de tiempos y otro de memoria; ambos son de selección natural.

En las oficinas de sucursal de un cliente me confirman del cambio de oficinas que yo ya sabía de tiempo atrás. Escribo, en la LG 1100 que ya va por su tercer disco duro. Lleva conmigo desde Navidad del 2008, cuando me la regalé a mí mismo, con otra laptop.

Estoy a la espera de varias cosas. Una de ellas es que llegue el mero mero administrativo de esta sucursal para que me ayude a hacer una llamada por celular. No tengo idea de la clave de marcado del conmutador y por lo general no me gusta hacer por skype llamadas personales.

Estoy a la espera también que el día de mañana me avise ese cliente que onda con su mudanza.

Es el final de un ciclo, para ellos.

Sé que esas oficinas llevan mas de los tres años que llevan mis empresas dándoles servicios de desarrollo de software y detección de fraudes. Justo acabo de hablar con una persona de la secretaría de la función publica que habló para dar las gracias por unos reportes que le llegan automáticamente por ser cliente de mi cliente.

Esta sucursal lleva mucha rotación de puestos y personas. Es posible que haga de este lugar mi centro de operaciones una vez terminada su mudanza central.

Este fin de semana debo ver que los servidores locales queden bien. La próxima semana, fin de semana de tres días.

Ayer conseguí por segunda vez un logro de perseverancia. Arqueología pura, aunque enfocada a algo más práctico. Siempre he pensado que los museos son una especie de monumento a cosas muertas, pero aprender algo sin explicar, o reconstruir lo muerto, no tiene caso. Durante muchos años viajando con mi padre por México y otros países, entendí que lo que hay vivo en muchos museos, es el amor y lo que tiene códigos de corrección (que por ejemplo tiene la monalisa de da vinci pero no la mona lisa de Botero) , y en realidad, revisar durante años lo que sucedía en los cuadros de David (francés) y exposiciones sobre Rubens, etc., era válido pero eso es un museo.

Un museo es para el arte, para entender que quedó. Pero en cuanto a la historia, siempre me ha interesado lo que puede comprobarse. Lo que me di cuenta desde hace años es que las ciencias sociales no deberían de ser ciencias. La mayoría no son reproducibles; no son experimentales, y sus hipótesis de trabajo pueden ser válidas. Pero las hipótesis que no son prácticas, representan un lastre en el conocimiento, y que no sirve para necesidades inmediatas, y es poco probable que sean más importantes que las leyes de las ciencias naturales.

Entiendo por lo mismo los movimientos de los filósofos Naturalistas ( Pitágoras , etc ) y su importancia relación con los naturalistas renacentistas como Da Vinci y en escritores como Darwin.

De momento debo dejar de escribir, estoy viendo varios problemas de amnesia y de selección natural, a propósito de Darwin. A ver si escribo de eso mañana.

La Eneida y Dos kilos de Higado

Empece el dia yendo a ver a un cliente, saliendo de ahi, salpi con mi esposaa comer algo (milanesa con papas y un chop suey, para los lectores de la secta templo de la serpiente emplumada).

A la una de la tarde vi a un amigo que no veia desde hace cuatro años, no relacionado con los sitios de Nagualismo. Es increible lo mal que les va a algunas personas, a pesar de ser medianamente decentes. Fuimos a ver un asunto en comun para lo que necesitaba mi ayuda y de mi esposa, despues , en lo que haciamos tiempo, fuimos a un lugar de comida italiana estilo de los sesentas porque era lo que estaba cerca y el no habia desayunado, y le invite un desayuno de milanesa (las hamburguesas de ahi son decentes, de carne de res de doble pasada de bola, y la comida italiana como lasgana y similaes es buena). El probelam era que pro cuestiones del horario, solo tenia desayunos.

Saliendo de ahi me acompaño al centro, donde tenia que comprar yo una table t para uno de mis clientes; hizo el un comentario sobre la iliada y le recomende la Eneida, asi que fuimos a una librera de viejo y le compre la eneida y luego regresamos a seguir buscando una tablet con lo que yo necesitaba: Puerto usb directo de cierta marca, para reponer un equipo que uso con un cliente.

La platica siguio y como mi esposa quería un chocolate con churros del moro, la acompañamos con un tradicional chocolate especial y unos churros.

En algunas personas, es posible ver problemas de salud por el color de las mejillas, pincipalmente coloracion amarilla indica problemas de vesicula, higado, pancras o bazo. La coloración roja que parece ladrillo incluso en mejillas , patillas y barbilla indica otros, así que, me di cuenta que nmo podia hacer mucho por eo, a pesar de ser una persona que en su momento tuvo una oportunidad. ¿Que puedes hacer? ¿Olvidar lo que sabes de medicina? ¿Hacer un esfuerzo para salvar a un perfecto extraño?

La respuesta es no.

Así que caminamos con el, despues ede comprar la tablet, le compré dos kilos de higado de res en el mercado de salto del agua, y luego lo acompañamos a su casa.

Es muy desagradable darse cuenta que hay personas uqe no tienen futuro, incluso desde antes de los valores, porque comen basura y estan con personas basura. En esas condiciones, no pueden trabajar cuando tienen la edad, y salen del ciculo de las personas autosuficientes sin darse cuenta.

Asi que mi esposa y yo compramos dos kilos de higado porque era lo decente que podíamos hacer; otro tipo de ayuda hubiera sido agresivo y establecido una pauta en alguien que quien sabe que valores tenga debido a su entorno de los ultimos años.

Sabiduría Popular sobre cajas de seguridad

Mi esposa está Viendo Blacklist en netflix.

Yo programo.

El esposo de la protagonista encuentra una caja de espía.

Mi esposa dice. Todos tienen sus caja de espía. Annie Walker, la de esta serie, etc etc

Le digo, es parte del argumento.

Dice : Despues de ver the russians

La interrumpo.

Eran The americans.

Gist 17 de abril 2015

Eliminado en 2018 y verificado en 2024

Si llegaste aquí buscando un gist de código, fue eliminado en 2018.

En muy pocas palabras, era un workaround de cambios en https://www.php.net/manual/es/mysqli.real-escape-string.php y tener al mismo tiempo código en php 5.x y 7.x me llevaron a otra solución.

La decisión de eliminar el gist de código, a pesar de que la solución funcionaba , responde a la necesidad de equilibrar la funcionalidad inmediata con el estándar de seguridad moderno. Aunque el código funcionó, representaba una práctica obsoleta, y el objetivo final de un blog post debe ser documentar la evolución de la solución. La solución real en los dos entornos fue addslashes mientras estuviéramos en un servidor sin control de ver errores (RHEL mal configurado php7.x sin root). La solución alternativa se probó en un rocky linux 8.x con otros problemas, y pudimos depurar pero el código no era compatible entre los dos servidores. Y con la coexistencia de una fuente 5.6 menos.

Algo que sigue siendo real, es el uso de addslashes() en 2024 para resolver ciertos problemas. Un ejemplo de código JQUERY que estaba revisando con AJAX, fallaba por estar usando la función mencionada. Usar addslashes a veces es lo mejor cuando manejas un json literalmente arbitrario aunque tengas que usar stripslashes después. A GPT no se le ocurrió.

Problemas:

  • Servidor Rhel sin acceso a root y que no mostraba errores
  • Datos Guardados en blobs de años anteriores
  • Se buscaba la solución menos intrusiva con los datos existentes.

En entornos con código heredado y la complejidad de datos inconsistentes (como los expedientes de gobierno que estaba viendo), la función addslashes  resultó ser la única solución estable y menos intrusiva. Esta función ofrece una garantía inmediata: escapar las comillas (', ") y barras invertidas (\) de cualquier string. Su principal ventaja era que no dependía de la base de datos; funcionaba puramente a nivel de string en PHP, lo que eliminó los fallos causados por datos antiguos pre-escapados o strings que rompían la estructura del JSON devuelto O ENTREGADO a AJAX. Ante la necesidad de mantener el servicio funcionando y la restricción (por sentido común y evitar problemas mayores) de no modificar el contenido la base de datos, addslashes() proporcionó la estabilidad requerida.

Lo mas extraño era que como se enviaba la información entre diversos servidores de gobierno, en ocasiones al mismo pedido exactamente, del mismo registro, venía con basura y el webservice para el que se hizo esto, era el consumidor. Por eso tuve que tomar medidas para validar que lo entregado a AJAX fuera correcto, y eso no lo hacía la base de datos pero addslashes y stripslashes si.

 

La adopción de addslashes() se impuso por la dificultad de implementar las soluciones modernas en el entorno de convivencia PHP 5.x , 7.x. y 8.x  La alternativa preferida para el escapado de stringsmysqli_real_escape_string(), requiere obligatoriamente una conexión activa a la base de datos para funcionar correctamente. En la arquitectura legacy de la aplicación, obtener el objeto de conexión mysqli de forma segura y consistente para pasarlo a la función resultó ser un cambio imposible (la fuente php 5.6 con laravel y por puertos cerrados se disparaba WAF). De igual manera, migrar a Sentencias Preparadas (el estándar de PHP 7.x) habría requerido una reescritura significativa de las consultas SQL existentes, lo cual iba en contra del objetivo de ser no intrusivo y además el origen era a veces un php 5.6 en laravel 5.2 en pleno 2024.

El problema principal era ser un parser de la basura entregada pero inverso. Teníamos que sacar información de base de datos a veces, y a veces de basura entregada por webservice, y ahi es donde addslashes funcionaba.

Por lo tanto, la solución adoptada se convirtió en un mecanismo de saneamiento pragmático para asegurar la integridad de los strings de datos. Al depender únicamente de una función simple y universal de PHP, se neutralizaron los bugs causados por las comillas en los datos de los expedientes sin tocar la capa de la base de datos ni las antiguas consultas SQL. Mientras que addslashes() se considera una práctica obsoleta por no ser la defensa más segura contra la inyección SQL, en varios casos de AJAX complejos, y en este caso específico de lectura de datos arbitrarios y necesidad de compatibilidad hacia atrás, fue el único camino viable para estabilizar el sistema sin una reingeniería completa, porque la fuente de datos, aunque segura por ser institución de gobierno con ip verificada, tenía calidad muy variable con exactamente las mismas consultas.