Un día más en la madriguera del conejo

Otro día que se me va, casi por completo, en preparar un documento de 25 hojas (papeles de trabajo bajo la NIA 230 normas internacionales de auditoría) y una presentación que, hasta hace un momento, ya sumaba 75 diapositivas.

Sin embargo, al revisarla, me percaté de que no profundicé en un problema en la Cláusula 10 y otro en la Cláusula 15. Son errores iguales o incluso peores que el hallazgo de la Cláusula 35. Son las 19:40 y, cerca de las 20:00, empezaré a preparar unas 10 o 12 láminas adicionales sobre estos puntos.

  • Nota: A las 19:58 Iban 73 slides y cuando acabé eran 20 de la parte cinco (lo de las ocho de la noche). Tengo que revisar esa parte mañana, pero hace años que no me reía tanto. Solo falta poner unas dos o tres slides de transición entre las partes nuevas

Son fallos simples si sabes hacia dónde mirar, pero críticos para mi trabajo y para el rigor de esta entrega; por ello, tengo que documentarlos. Hasta ahora, solo los había mencionado de pasada en las 75 diapositivas previas.

Todo comenzó buscando un detalle simple para la tarea, apenas la punta de la madeja. Fue como descender a la madriguera del conejo en Alicia en el país de las maravillas o cruzar al otro lado del espejo.

Esta es la actividad final de la materia. Supongo que mi pobre maestra esperaba una presentación estándar de cinco diapositivas… Soy culpable. Definitivamente se merece un café y un pastel por lo que le espera.

¿Que es una locura? Sí, tal vez. Pero así es como hago mi trabajo.

Revisando documentos notariales

Ahora, por una tarea, se me fueron unas seis horas.

La tarea era simple, a nivel licenciatura: analizar 10 puntos de un documento notarial, hacer una presentación de PowerPoint y enviarla dos días antes del jueves para demostrar dominio del tema (y el jueves, video).

Ok. Empiezo a leer el documento. Abro un Word para mis papeles de trabajo. A ver… ¿no está la hora? ¿Ni al inicio ni al final? ¿Que el domicilio tampoco está? ¿Solo la ciudad? ¿Que la cláusula 35 dice qué? Eso va contra la Ley General de Sociedades y las leyes estatales de comercio (y sus implicaciones en bienes inmuebles).

¿Que la cláusula 15 menciona energía eléctrica en los socios? ¿En 2013? Pero si la reforma eléctrica fue después… ¿Copy-paste? Bueno… poderes… ¿a nombre del Consejo de Administración? ¿No nominativos? ¿Independientes y no mancomunados? Red flag.

Y lo que debió ser preparar tres diapositivas de PowerPoint (más la carátula), ya eran 25 hojas de Word con papeles de trabajo de auditoría. Finalmente, envié el documento de 25 hojas avisando que mañana mando la presentación y empecé a hacerla. Me quedé en 16 diapositivas y todavía no hago las tres más necesarias.

Tengo la costumbre, por formación contable y por DevOps, de pensar que todo es una trampa. Solo sé que el notario que hizo el documento cometió un error común que, sumado a cinco cosas raras, se convierte en un error grave. Ese documento notarial de 2013 no podría ser real ahora. Básicamente, es un acta de una empresa que dinamita todo control interno con un asunto contradictorio y una cláusula 35 que va contra los mecanismos de control, donde el domicilio no especificado es el menor de los males. Es la primera vez que veo un documento con tantos errores de notario (por lo general, se equivocan las partes que formalizan).

En resumidas cuentas, mañana entrego un trabajo impecable de 40 hojas, mientras que los otros van a entregar uno de tres. Yo fundamento con las leyes estatales, las NIF, las leyes notariales del estado de ese año y las de Sociedades Mercantiles. Cuando juntas las NIA (Normas Internacionales de Auditoría) más las reglas de verdad formal, como pruebas lícitas y presentadas, el asunto parece más de derecho, pero es algo básico que abarca desde lo comercial hasta lo fiscal.

Pero sí, esa notario suplente debería sentir pena. Los sellos notariales del final también vienen sin hora; no solo el cuerpo del documento carece de hora de inicio y final, sino que al cierre tampoco se indican las horas de formalización. O sea, el notario dijo:

«En esta ciudad, estas dos personas convienen en hacer algo’, pero la cláusula 35 va contra la Ley de Sociedades Mercantiles. Como notario, ‘doy fe’ de un acto que no cumple con los requisitos notariales, donde la vigilancia se la delegan a alguien que ni siquiera dio dirección y, para rematar, los poderes sobre el bien no son nominativos.»  Firmado el dia x a quien sabe qué hora.

La versión final de la diapositiva fue :

«En esta ciudad, estas dos personas convienen en hacer algo, y certifico las siguientes incertidumbres jurídicas: Como notario, ‘doy fe’ de un acto que NO CUMPLE con los requisitos notariales, que la cláusula 35 va contra la LGSM y que es abiertamente nula, donde la vigilancia se delega a alguien que NI  SIQUIERA DIERON DIRECCIÓN, que los poderes sobre los bienes son COMPARTIDOS PERO INDIVIDUALES y NO SON NOMINATIVOS, dejando la puerta abierta al saqueo unilateral de forma legalizada. Firmado AQUI el día X, a una HORA QUE NO IMPORTA, sobre una legalidad que NO EXISTE, Por personas que manifestaron ser  mexicanas pero no me consta en un domicilio NO ESPECIFICADO, de una ciudad que puede ser Chihuahua… o no.»

Este es mi tipo de trabajo desde hace años, pero esto es solo una tarea. No sé si mi maestra ya notó todo eso. Ya son las 21:36. Faltan más o menos seis o siete meses para acabar la licenciatura.

  • Nota del dia siguiente. Un error simple pero fatal ADICIONAL. Voy a publicar los datos completos en cuanto tenga el acta de la calificación de la materia pero  por mientras este diclaimer

DISCLAIMER:

AVISO DE CONFIDENCIALIDAD Y ÉTICA PROFESIONAL

El presente análisis se basa en un instrumento público . Con estricto apego a la Ley Federal de Protección de Datos Personales en Posesión de los Particulares, toda la información sensible (nombres, identificaciones, firmas, RFC y CURP) ha sido testada y anonimizada.

Este ejercicio tiene fines estrictamente académicos y de auditoría de riesgos. El expositor no se hace responsable por el uso que terceros den a la información técnica aquí presentada ni por la veracidad del documento original analizado.

Como empresario con más de dos décadas en el ecosistema digital, me he topado con casos de negligencia documental, pero pocos tan extremos como este. El siguiente análisis técnico de una S.A. de C.V. es un recordatorio de que la seguridad de una empresa no termina en la firma del notario, sino en la custodia de su información. Por respeto a la privacidad, he testado todos los datos identificables. Lo que leerán a continuación es una autopsia jurídica de una sociedad que, por errores de fondo y forma, se exhibió ‘hasta la cocina

Una ausencia

Es la madrugada del martes 27. Estoy haciendo un respaldo. 00:17.

Aunque no parezca relevante en este momento, tengo el despertador programado de lunes a viernes a las 05:15. Por lo general, me despierto antes. Los fines de semana, casi siempre me despierto a la misma hora.

El domingo en la madrugada un conocido me hizo llegar una pericial de casi 60 páginas. La validé y luego entré en contacto con la persona. Mejoras, cambios. Se me fue prácticamente todo el domingo; entre el domingo y el lunes, me acosté a las 04:35 a. m. Por lo general habría quitado la alarma, pero se me pasó.

Normalmente, cuando me duermo es como accionar un interruptor de apagado: me acuesto, acomodo la almohada, me cobijo y ya estoy dormido. Pero en esta ocasión, le di vueltas en la cabeza al contenido de la pericial y al único anexo que había en ese momento (la versión final fueron dos).

Mi mente estaba, entonces, en lo que se llama estado hipnagógico. Ese punto donde, por lo general, puedes hacer cruces de cosas importantes pero a la vez obvias. Y, a veces, aparecen imágenes.

He comentado antes sobre esos sueños en secuencia que han durado casi dos años, mientras que en los años anteriores, nada de nada. En algunas series que he visto (coreanas, principalmente) presentan la muerte como un desierto y una caverna. La persona fallecida va en una procesión cruzando el desierto y, al final, entra en una caverna que es algo así como el otro mundo; obviamente, una metáfora del útero.

Aquí debo hacer otro comentario que no había escrito por la pesadez y la cantidad de trabajo que me tocó con lo de la pericial. En la noche del sábado al domingo tuve un sueño que no anoté por la sobrecarga, pero que es pertinente para esto.

En ese sueño, estaba terminando de mudarme a una casa y despidiendo a los de la mudanza. Era un loft de unos ocho metros de lado (es decir, sin paredes interiores y unos 64 metros cuadrados), con pisos blancos de mosaico y una pequeña división que daba algo de privacidad a la cama. Pero, en el sueño, el piso tenía un pequeño derrumbe y me daba cuenta de que debía mover la cama por el aparente hundimiento. Como yo tenía las llaves del piso de abajo, bajaba y veía que no había grietas en el techo; regresaba al piso superior y movía mi cama, aunque el piso ya no estaba tan firme.

En este sueño, vale la pena destacar, no aparecía otra persona más que yo. Es la única vez que me ha pasado algo así en sueños de entorno urbano. Podría interpretarse como un problema temporal en mi modo de vida, pero yo estaba perfectamente tranquilo. El pensamiento era que debía reparar eso, pero en ese momento era más importante dormir.

Bien. Regresando al estado entre dormido y despierto del día siguiente…

Me dejo llevar por las palabras que me susurran de la pericial y la validación cruzada necesaria. Deben ser las 4:55 o algo así.

En ese momento, veo una imagen: el símbolo distintivo de los sueños de la secuencia que he comentado. Es curioso, la mitad de los sueños de mi vida han ocurrido de octubre de 2023 hacia hoy, y como el 70 % de estos sueños modernos pertenecen a esa secuencia. Tengo 54 años.

Mientras escribo, mi esposa ronca.

Me encuentro en esa imagen a punto de caminar hacia un volcán. Me vienen a la mente, simultáneamente, un juego de Nintendo normal, Ultima (juegazo) y su marca de lava para caminar sobre ella y completar un quest. También me viene a la mente la escena inicial de Zanoni, de Bulwer-Lytton, en el volcán.

El símbolo distintivo, en este caso, se manifiesta en una ropa de mujer, holgada, un traje azul flotando. El traje azul flotante empieza a darse la vuelta justo cuando piso la lava y noto que no me hace daño.

Despertador. Adiós.

¿Por qué «Ausencia»?

En mi vida ha habido tres sueños fragmentados incluyendo este. El primero fue hace unos años, en tiempos de la pandemia; había unos edificios circulares y mi hija me despertó. Me levanté adolorido y con ácido láctico en los músculos, la única vez que me ha pasado algo así. La segunda vez fue hace unos dos meses; no podía acordarme de absolutamente nada pasado un día, solo sabía que había tenido un sueño de la secuencia.

Esto es el inicio de un sueño: lo del volcán y la ropa azul rey mientras empiezo a caminar por la lava en paz, con confianza, sin miedo, sin deseo, hacia mi lugar.

Apagué el despertador y me dormí como siempre. Me acomodo y, zaz, dormido; en este caso, sin situaciones hipnagógicas.

Y de ahí, una sensación de ausencia. Me hubiera gustado que ese sueño siguiera. Salvo raras excepciones, los sueños de secuencia me llevan a la paz. Creo que solo uno tenía que ver con violencia; casi siempre son sueños sin sentimiento donde soy un observador, como en el del suelo de mosaicos. También hay uno o dos sueños con piso blanco y un charquito de agua.

Hay un paralelo entre el piso que empieza a derrumbarse y el caminar por el volcán.

A lo largo del día seguí revisando la pericial y hablando con la persona por WhatsApp. Van más o menos dos días seguidos de hacerlo, con pausas. Un párrafo extra: «Oye, según el código penal de este estado, la persona cometió tal delito». Así. Yo no soy abogado, pero llevo años viendo documentos legales similares. ¿Desde 1998? Creo que sí.

Me doy un tiempo porque tengo que comprar algo a pie a unos dos kilómetros de mi casa, y saco a pasear a dos de mis perros: la matriarca, una schnauzer de 14 años que se va de lado por viejita, pero que es cariñosa y le encanta caminar; y la setter, llamada Safari, llena de vitalidad a su año y medio, a la que le gusta explorar (por eso el nombre).

Caminamos un rato; el lugar está cerrado. En el camino pienso en la ausencia y me acuerdo de cosas de mi juventud y de mis treinta. Otros perros, mismo hombre. Recuerdo las caminatas en la montaña con mi maestro tradicional y dos pastores belgas. Las caminatas a medianoche con el labrador y la cocker. Una plática con una vecina de 16 años (yo en mis 17 o 18) mientras llevo un pastor alemán y ella una maltés. Todo al mismo tiempo.

El hombre y los valores no cambian.

Casi llegando a mi casa, hago una pausa en el puesto de birria. Compro comida primero para los perros; esas dos se merecen un premio y les compro tacos. También algo para mi familia. Los perros felices, yo en paz.

Camino en esta tierra con la mente en servidores Debian, asuntos judiciales y programación. Para mí, el volcán en este caso no era tanto paz como el signo distintivo. Se siente como un desperdicio no estar ahí, pero mi mundo real tiene lo necesario. Mientras escribo, mi esposa ronca y mis perros están dormidos; las dos del paseo cayeron desplomadas por la caminata y los tacos de birria.

Yo seguí con la pericial.

Y aunque no me gusta oír música por diversas razones, hay cosas que me vienen a la mente por la agencia de publicidad en la que trabajé en los noventa. Pienso en la tonada de El Tri: «Si las piedras rodando se encuentran… y tú y yo algún día nos habremos de encontrar…». Algo así.

Siento de manera lateral la ausencia de ese sueño, casi como fue en su momento romper relaciones de pareja. Solo una vez no rompí yo. Y no han sido tantas parejas: cinco en cincuenta y cuatro años.

En una situación de marzo del año pasado, sentí en la vida real una profunda tristeza por ver lo que se estaba haciendo una dama; sin ser una relación personal, solo fui testigo de un suicidio emocional, por decirlo así. Creo que, de los últimos diez años, esa sensación de tristeza ha sido el sentimiento más intenso, y aun así, sin ser para tanto.

00:56.

No sé si escribo porque tengo algo más que decir o porque quiero invocar el recuerdo de la caminata hacia el volcán.

Dejando de lado lo que llamaba Platón las sombras y las ideas, y el sentido de las sombras en el camino de Mitra, no estoy hablando de un multiverso. Ese sueño sigue en algún lado. Pero no me es posible saber cómo, dónde ni cuándo. No creo que sea al morir.

He visto menos muertes que doctores o enfermeras, pero sí me han tocado unas quince o veinte muertes, por lo menos. A mi hija no la vi morir; iba yo camino al trabajo. Años atrás, mi pareja estaba de viaje en Guadalajara mientras yo estaba en la Ciudad de México. He visto solamente un nacimiento y es más apantallante que una muerte (los nacimientos de perritos no cuentan).

Por cuestiones de mis vivencias personales, tengo la idea de lo que debo hacer una vez que muera. Puedo estar equivocado y que no haya nada, o un túnel de luz, o la caverna y el desierto de las series coreanas. En mi caso, lo primero va a ser ubicarme y contestar qué pasó ante una pregunta.

Para mí, sea como sea mi muerte y a la edad que sea, debo reaccionar y pasar a lo siguiente por el juramento de hace casi veinte años. Curiosamente, yo, que vivo en paz, cuando sea mi muerte debo reaccionar como en medio de una pelea y prepararme para la guerra, si puedo; y no veo por qué no.

Mi esposa se despertó un momento; yo ya le dije que aparece dos veces aquí. «¿Me quieres aunque ronque?», pregunta. «¡Porque roncas!», le contesto.

Así que tengo del otro lado de la puerta a varios perros tranquilos. Y mi esposa ya está, otra vez, en el quinto sueño. Soy Centinela.

Me doy cuenta de algo obvio que explicar: que la ropa azul flotando en el volcán es a lo que se refiere John Baines en El hombre estelar como «palabras de Isis». Y que es lo mismo de El mago, de John Fowles, con Astarté.

Por Astarté.

No es esto una ilusión de El rayo de luna de Bécquer. No es un premio. No es una ilusión. Es algo real. Es algo que vale la pena proteger. Algo por lo que vale la pena vivir y morir.

Sueños en secuencia. Por Astarté.

Dos comentarios y una observación

Hace unos meses, cuando pasó lo del cliente de los monolitos, mi exjefa me dijo: «Sé que has tenido una vida difícil». Pensando en eso, pues quién sabe. Solo sé que sí le comenté lo de la secta (por el incidente de la fe de hechos y el encuentro fortuito con un simpatizante que además se puso agresivo con una mujer; pero al ser recurrente la presencia del tipo, era necesario comentar para prever sorpresa en actos de violencia física). Mi aviso no era de «situación difícil», era sentido de protección y responsabilidad, más que solo la disposición a la pelea.

Sí le comenté que tenía pruebas notarizadas de que, según ellos, estoy poseído por un extraterrestre, pero era para prever un riesgo real. Eso se lo dije desde el día que la asignaron como jefa del área; ella era la tercera persona en el puesto y la quinta en estar informada. Al igual que le dije que soy insobornable y que era mi segundo ingreso, usado integramente para pago de otra casa.

Otro punto del que quizá se enteró de refilón, pero es muy poco probable: en una encuesta a terceros salió lo de la muerte de mi hija (hace casi 20 años) por tonterías de la mamá. Y una vez que me enviaron como «bulto» a una dinámica sobre las implicaciones del suicidio, la que lo estaba moderando era una psicóloga «positivista» que era todo amor. Cuando me preguntó en qué casos podía ser válido el suicidio (que según ella eran cero) le puse como ejemplo la enfermedad ELA de Stephen Hawking y un caso directo de una mujer de menos de 30 años que sucedió en mi círculo de conocidos después de un accidente gravísimo.

Pero sí me queda claro que eso, y las otras dos o tres seudodinámicas de integración, fueron antes de esa jefa en especial; que mis resultados fueron perfectos y que sería raro que hubiera un expediente de eso por confidencialidad y por no ser yo personal de planta. Además, en la junta de nueve directores y jefes de sistemas, fui el único que dio resultados. Lo que hizo de pedirme cometer un delito no tenía razón de ser y más bien parecía técnica de manipulación lo de «vida difícil». Sí me han pasado cosas duras, pero allí no las sabían, y la secta que me acosó durante años era solo una bola de idiotas y tomé medidas preventivas. Pero ¿difícil? No.

De todos modos, el comentario (ignorado en primer momento por mí) me hizo pensar. ¿Vida difícil? De los presentes en esa área, que éramos máximo 30, yo era el segundo en edad a mis 52 (ahora 54) y al mismo tiempo el más fuerte físicamente y el más independiente. Mi actitud siempre fue de servicio con todo el mundo, y los pendientes que quedaron fueron por su babosada de lo que me encargaron ese mismo día y que nunca arreglaron, afectando a unos 200 ciudadanos por lo menos (dependencia de gobierno).

El segundo comentario lo hizo una persona de Ojos Alerta AC, la Loba Roja, sobre si era ventaja de mi lado el haber tenido una infancia tranquila. Igual me quedé pensando. Es asunto de valores. A mi mamá casi no la traté y mi papá hizo lo que había que hacer; no digo que fuera yo ignorado, pero él se dedicaba a lo que había que hacer y, en vez de sentarme frente a la tele, me sentaba frente a Los hermanos Karamazov y libros similares. Ventaja y desventaja, quizá. Pero completamente irrelevante. A los 17 más o menos decidí hacer las cosas basándome en lo correcto y no en lo agradable, y eso era lo determinante, no la infancia.

Mi trabajo ha sido, desde 1992, programar y detectar fraudes. Tengo formación de contador público y trabajo como DevOps; ambos mundos te exigen una honestidad brutal y una postura firme. He comentado que, por otra parte, puede decirse que soy estoico, con una formación entre Platón y Nietzsche, más el I Ching (Libro de los Cambios). Son actividades donde el error o la falta de ética tienen consecuencias técnicas inmediatas.

Ayer fue mi cumpleaños 54. Al regreso de comprar la comida y un pay de limón, tomé un taxi y pasé con mi esposa por el panteón donde tengo contratado el plan funerario. Me acordé de cuando falleció el papá de ella, del desorden, y de que finalmente (aunque no usaron mi paquete y el funeral fue en una funeraria de la Zona Rosa) lo cremaron en el mismo panteón que sugerí desde el principio, porque el original no tenía cremación.

Tuve que manejar con cuidado a los parientes políticos y a mi suegra para que ella no estuviera cerca de la cremación, ya que, a su edad, los sonidos pueden ser… duros. Ella llevaba casada creo que 58 años y ya es una persona mayor.

¿Y cómo lo sé? Al pasar por los panteones camino a mi casa (ese departamento está en una zona muy céntrica, segura y en la zona de panteones en la CDMX), me acordé de ciertos eventos.

Me tocó ser, junto con mi esposa, el único familiar presente en otra ciudad cuando falleció mi mamá, que vivía allí. Vi cómo la depositaron en el crematorio; tenía unos 71 años. Cuando mi padre falleció, igualmente, estuve cerca con su pareja actual y otro de sus hijos. Soy al único al que él crió y me llamo igual. Además de ser observador, no dejé que la exesposa se acercara; mientras los otros parientes estaban en shock (éramos unos veinte), yo escuchaba los sonidos en el crematorio del Panteón Francés.

Cuando mi hija de dos años murió por los tratamientos médicos y la negligencia de la madre, estuve en la funeraria en Satélite cuando entró al crematorio. Fui el único pariente presente. La mamá estaba deshecha a unos metros, y eso que el colapso y el trastorno bipolar le sobrevinieron después.

A finales de los noventa, Antes de los 30 años, me encontraba en Guadalajara. Murió una persona a la que conocía desde hacía doce años, con quien tuve dos de relación más cercana. Sus padres estaban igual, en estado de shock. Es buena práctica, cuando una mujer joven y hermosa muere, observar desde que la sacan del ataúd hasta que encienden el horno, para evitar faltas de respeto.

¿Vida difícil? No lo sé. Tengo varias casas. Salud, fuerza y reflejos. Un ingreso seguro, aunque limitado de momento en relación con años anteriores, pero mejor que de la mayoría. Casado desde hace 17 años con una segunda persona. Otra hija de 18 (hermana de la difunta) que está conmigo . Varios perros.

La mayoría de la gente tiene sueños que les dan esperanza o miedo.. señales de esperanza o de precaución. En mi caso rara vez sueño (los dos años anteriores soñé mucho mas que el resto de mi vida , pero llevo unos tres meses sin soñar y a veces pasaban años sin soñar.)

Lo que veo es paz.

Rackspace Wiredtree Clipper y Warcraft

Rackspace es un proveedor de CDN (distribución múltiple de archivos grandes tipo CD) que en su momento tenía servidores muy buenos. Llegué a contratar con ellos. Lo último que supe antes de ayer es que se habían enfocado en el mercado de cuentas de correo a 3 USD mensuales. No estaba mal. Pero ayer subieron el precio de otras cosas en 700%, y de correo de 3 a 10 USD por cuenta; más alto que Microsoft y Gmail y con un servicio mucho mas limitado y mediocre.

Wiredtree era la mejor marca a nivel mundial de servidores managed. Noté algo raro un día. Coincidió que mis pagos, que siempre hago mensuales, vencían al día siguiente y me cambié por instinto. Dos días después: catástrofe al ser adquiridos por otros. Como destruir la marca mas valiosa del mundo en menos de un mes.

Clipper. Lenguaje de programación que permitía hacer deploys de bases de datos (dbf) en un solo archivo. Hicieron una serie de tonterías. Su nueva versión era Visual Objects, que hizo cambios de la 1.5 a la 2 tan masivos que se volvió basura. Con Clipper 5.2e o 5.3b y el mismo Visual Objects 1.5 lo tenían todo… y lo destruyeron. Algo por el estilo a lo que hizo Angular de la versión 1 a la 2 y posteriores. Clipper esta muerto y a Angular nadie lo toma en serio ni lo usa ahora, a menos que no tenga otro remedio.

Warcraft. Hicieron cambios quitando TODAS las apariencias de transmog (apariencia de personajes). Además de otros cambios, corregir esto me tomaría una suscripción activa, 1,500 oros por personaje y comprar diez ranuras de armadura por cada uno. Estimados de foros dicen que son de 300 a 700 mil oros. Mis reservas son de 200 mil, creo, pero no las voy a gastar en eso. No lo estoy usando, pero en un solo movimiento destruyeron algo.

En su caso es todo el universo de transmogs, y los addons cambian las raids. Por lo que sé, es uno de esos cambios donde las clases ya no hacen nada de lo que hacían antes, lo que siempre les ha hecho perder un 20% de jugadores. Esta vez puede ser un 50% o más. Ahora es Microsoft y no Blizzard, pero es increíble el nivel de estupidez. Yo no entro; me asomé y, al ver que cambió la apariencia de mis 70 personajes de diferentes reinos a los que reconocía de vista, (indispensable cuando tienes varios personajes de misma clase y raza que se llaman igual en diferentes reinos) . Calculé que si quisiera regresar me costaría unos 700 mil oros (que son como 1,500 pesos u 80 USD) y fácil unas 12 horas o más de gestión.

Los cuatro casos son lo mismo: codicia y estupidez.

varios detalles de la vida laboral

Hace unos momentos me contactaron de la startup en que dí la plática del otro día, para decirme sobre un problema que tuvieron con una nueva imagen de Debian en OVHcloud. Es el proveedor.

A lo mejor no todos los lugares de Kentucky Fried Chicken siguen las mismas normas y hay muchas posibilidades de que algo esté mal y que no seas tú, sino la operación o el proveedor. No me meto a contar historias de terror de proveedores, pero hay una incredulidad compartida de que los nuevos servers no funcionen igual en ese proveedor. Sobrevendidos, probablemente.

Si el proveedor falla y el cliente insiste, yo me deslindo. No en este caso, regla general. Nuestro trabajo en sistemas depende de usar y ser proveedores de calidad.

Comento varios detalles de los que me acordé y son relevantes:

  • En 1992-1994 fui a una entrevista de trabajo a otro lugar antes de cambiarme de cadena de supermercados. El puesto que querían en este lugar de otro giro era para manejo de análisis de contratación y selección de personal, flujo de caja y contabilidad. Tenían un problema fuerte con una computadora cuando llegué a la entrevista. Comenté que llevaba tres años manejando computadoras y que, si querían, la revisaba. Era una PC Printaform de las genéricas. Además de que querían pagar un tercio de lo normal y que lo que publicaron del sueldo era por error, querían que les dijera qué procesador y memoria tenía la computadora sin prenderla. Les dije que era imposible al ser una «caja blanca» genérica color hueso que se armaba a la medida, y me dijeron que ellos me llamaban. Muchas banderas rojas, ninguna mía. Pero esas PC venían con DR-DOS 6.0; ¡qué tiempos!
  • Otra: en 2008, llego un día al trabajo después de un «oso» memorable del director (empresa de software para una aseguradora) que se negaba a pagar un bono del 40%, y me encuentro con que mi usuario y mi dirección IP tenían bloqueados los puertos 110 y 25 (no podía ver ni enviar correos), las actualizaciones de antivirus, Firefox y el firewall. Simplemente les pedí que decidieran si me iban a dejar trabajar, y dos días después me fui con liquidación completa. Lugar muy raro. ¿Cómo esperan que programes sin correo y sin poder actualizar el navegador cuando haces programación web para bases Oracle?
  • En 1995, una semana antes de entrar a las gaseras, fui a una entrevista en un despacho de abogados. Necesitaban un programador de planta que les hiciera varias cosas; se habló todo y firmé contrato. Estaba por pasar a donde iba a ser mi lugar cuando me dicen: «Por cierto, se paga mensualmente, no quincenalmente como dijimos, y es de lunes a sábado de 9 a 7, no lunes a viernes de 8 a 5. El contrato está mal, ¿tienes problema?». Les dije que no, les pedí ver el contrato (donde claro que no venía lo que decían) y lo rompí guardando mi firma. Un despacho de abogados, ¡Dios santo!

Una de las cosas que hago cuando voy a salir de un lugar de trabajo o se va a pasar el control de un servidor, es justamente decir que yo no paso el control de los servidores si son propios y no de ellos. Si estaban en MIS servidores y no de la empresa del cliente, son MIS SERVIDORES, no de ellos. Si hay un problema de configuración la culpa es mía, y si todo está bien el mérito es de ellos, así que lo sano es deslindarme y que lo hagan solos. Les doy un respaldo, que generen su servidor y que lo configuren solitos. Algo por el estilo pasa con este cliente: les demostré que el proveedor tiene problemas y quieren usarlo de todos modos. Es como querer sacar premio de puntualidad y faltar al trabajo o a la escuela

Como digo siempre: un servidor es tan bueno como su admin.

Las personas son diferentes

Uno de los principios básicos de los rosacruces y otras teorías o movimientos filosóficos es: «Solo hay una ley sagrada: la ley de la desigualdad entre los hombres». Incluso se menciona en Zanoni, de Bulwer-Lytton, y creo que en algunos libros atribuidos indistintamente a los fundadores de los rosacruces o a Eliphas Levi.

La idea parece acertada.

Hay algunas situaciones en las que pienso mientras, para variar, saco respaldos en segundo plano y sigo moviendo biofuels y municiones en EVE Online. Sin ser por orden de importancia:

Los recuerdos y la realidad no son lo mismo. He oído de personas valiosas y tranquilas, como mi suegra, una versión de eventos que no sucedió pero que ella cree sinceramente. O mi papá, que me hablaba de cuando fue a recogerme a la escuela el día del temblor del 85; pero no fue así, me regresé solo y otra historia de la familia demuestra mi dicho. Mi papá, de plano, estaba dormido ese día. Por otro lado, sobre la secta destructiva, en su momento oí dos o tres versiones diferentes del mismo evento. O en el caso del hospital que estaba viendo para el servicio social: si no le pagan a los proveedores por su tiempo y el material, no van a trabajar, y no lo digo por mí. Que se inventen otro pretexto es su asunto.

Un concepto básico de la contabilidad es lo fungible o intercambiable de un objeto. Por ejemplo, un kilo de arroz de una marca y un periodo de tiempo es intercambiable por otro similar, aunque la calidad cambie año con año. Un coche nuevo que no se ha usado es igual a otro de las mismas condiciones y colores; pero, con el paso del tiempo, son diferentes para fines legales, contables y de seguro. No solo por el dueño, sino por la memoria de lo que el coche ha pasado.

¿Por qué tantos reniegan de su memoria?

En el juego EVE Online, existen unas 500 capacidades diferentes que se aprenden en niveles (slots) del 1 al 5. A veces, aprender del nivel 4 al 5 de cada habilidad tarda desde tres días hasta dos meses. Puedo comprar y comparar las habilidades de los pilotos, pero no su experiencia. Unos la tienen y otros no. Eso me dice a veces que debo aprender para poder vender un piloto sin efectos secundarios. Un obrero regular parece igual a otro, pero, como vi desde mi trabajo en los supermercados, una jefa de cocina buena era la diferencia entre vender 500 mil mensuales o 17 mil. Sí. No le dieron aumento a esa jefa y quisieron poner a otra que además usaba latería golpeada; las ventas del departamento se fueron al demonio.

La memoria puede ser experiencia o traumas, entre otras cosas. Huir de los recuerdos malos no sirve de nada. Esperar que no pase algo de nuevo es normal, pero la prevención cuenta. Algunas cosas tienen fecha de expiración en el mundo real y otras no. A veces, la situación cambia de una manera que simplemente no puedes prever.

Por ejemplo, nadie en su sano juicio entrena ciertas cosas a Nivel 5 en EVE Online. Conocí a una persona interesada en la música con instrumentos medievales que hizo su tesis de doctorado sobre la importancia de los gatos negros en la cultura medieval; hija de un millonario, claro. Entrenar “Takmahl Technology 5” en el juego es, a veces, contraproducente. El Nivel IV es mejor, e incluso nunca he tenido que usar el nivel III. Es el equivalente al doctorado en la importancia de los gatos negros.

Otro caso que recuerdo es el de una dama que conocí: estudió Biología Marina en una escuela de paga en la Ciudad de México, pero no quería mudarse de la ciudad para ejercer. O uno de los líderes de la secta, a quien le dio por llamarse a sí mismo «Licenciado en Astrofísica Onírica» y, en otra de sus identidades, decía ser abogado especialista en Derecho Informático por la UNAM, especialidad y cédula que no existían.

Aquí surge un derivado interesante sobre la fungibilidad o el intercambio de las cosas. Entre 2010 y 2011, una de las identidades de la secta se inventó una historia sobre europeos de una secta en el pueblo de Chipilo que usaban walkie-talkies. Era un indicio más de locura de los de la secta, y tan poco razonable que tenía que verificarlo. Parecía ser cuento chino y lo era, por lo mismo otra identidad probable y confirmada después. ¿Para que mentir? Dio la casualidad de que en esa época yo estaba desarrollando un sistema para detectar variaciones de temperatura en camiones refrigerados que transportaban leche a una fábrica. Hice una llamada a mi cliente y me dijeron que ellos vendían a empresas artesanales de quesos; además, me invitaron a ir a Chipilo esos días.

He visitado comunidades raras en el país, principalmente en Chiapas y Oaxaca, además de algunas en Guerrero, Puebla y Yucatán, absolutamente increíbles por lo surrealistas. Pero lo que encontré en Chipilo era más parecido a las comunidades Amish de Estados Unidos: un pueblo de unos 3 a 5 mil habitantes, descendientes de italianos, que efectivamente usaban walkie-talkies, pero debido a una señal de internet que entonces era infame y porque es lo habitual en las fábricas (celulares eran caros, frágiles e inútiles) Hay que ser claros: no puedes dejar celulares demasiado tiempo en un refrigerador; no son de uso rudo. Los recibos de roaming y la pérdida de señal siguen siendo problemas vigentes.

En la plática con las personas de una fábrica local surgió la oportunidad de hacer un demo sobre el mecanismo de cambios de temperatura y sus alertas. Surgió un detalle comercial normal y, cuando comenté sobre controles de inventarios en cámaras de refrigeración, el tema se extendió. Íbamos de pasada para una visita de una hora y terminamos yéndonos a altas horas de la noche. En los meses siguientes realicé proyectos de control de merma (cuando cortas mantequillas o quesos y no sabes cuánto servirá o cuánto se irá a la basura por daño estético), pero lo más interesante fue que de ahí surgió un cliente en Puebla.

Ese cliente es el que me interesa para esta narración. Una fábrica de quesos tenía un problema de 15 toneladas (rubro que yo ya conocía por mi trabajo en la Central de Abastos en el año 2000). El problema era, literalmente, un queso pecorino del que no conocían la calidad ni estaba rotulado por lote, fruto de diversos experimentos. Ese queso se conserva bien por años, pero algún idiota a cargo del área iba almacenando por fecha y no por lote, tina, tipo de queso ni receta.

Así, tenían el 40% de los bienes de la empresa concentrados en un producto que no podían vender, del que no sabían la calidad y que no era fungible. Hice un presupuesto y un plan de recuperación con un ingeniero químico, que incluía un sistema de jueces. El problema era que los costos para cumplir con las normas sanitarias más elementales volvían incosteable cualquier control de calidad.

No sé qué hicieron al final con esas quince toneladas de queso.

 Aquel queso eran 15 toneladas y el cálculo entonces era de unos 200 mil USD. Las pruebas de calidad se enfocaban en el lote actual, pero el control del inventario estaba hecho solo en kilos. Al mismo tiempo, el producto ocupaba cámaras refrigeradas que costaban dinero. Hay cosas que no puedes conservar sin pagar el precio; el queso sin refrigeración se pierde. He estado en bodegas de galletas de 150 metros cuadrados por 12 de alto, llenas de galletas de animalitos que se vendían al gobierno. Allí, el costo no era solo el almacenamiento, sino las medidas de previsión ante las ratas.

La memoria es un bien similar. Hay cuidados que se deben tener con el cerebro basándose en la observación y notas propias  (por eso sirven los libros de Plutarco y similares) que, aunque puedan tener cierto sesgo o subjetividad, son lo más razonable posible. Escribo este blog desde 2004 como un «palacio de la memoria», un almacén tanto de ideas como de sucesos. Hay que refrescar la memoria con baños de realidad y observación directa.

Otro caso: hace unos cinco meses, el sistema Kehjari en EVE Online tenía en baja seguridad la única fábrica a la redonda. Hice allí en solitario el 40% de las municiones que mencioné antes. Hace una semana, aprovechando el final del evento que facilita la logística, fui a ver si olvidaba algo.

Oh, oh… problemas. Había de 40 a 60 personas. Tres días seguidos en un sistema que comúnmente estaba vacío y no tiene nada especial. No hay registro de muertes de naves o NPC. ¿Qué estaban haciendo allí? Los índices industriales eran buenos, pero no estaban construyendo. Daré un vistazo más en dos semanas y otro en un mes y medio. La memoria me dice que es un buen lugar; la visibilidad me dice que hay peligro. Si ves a un vago en motocicleta a 15 metros delante de ti, no es paranoia: es el simple hecho de que nadie en su sano juicio hace tiempo en esa zona en una moto.

La  memoria no es un bien tal cual. Debe ser tratada como un sistema de auditoría continua. Verificación de primera segunda y tercera mano, que además es necesaria para planes de contingencia. Si sabes lo que ganas no te compras un Iphone 25 que no necesitas ni te vas de vacaciones a Europa cuatro meses y te asustas con las tarejtas de crédito después. Son casos de problemas de memoria. La memoria y la realidad, simplemente son y alterarlas no sirve de nada.

Se conectan la termodinámica (el queso que se pudre), la seguridad física (el vago en la moto) y la inteligencia militar en EVE (el sistema Kehjari) en una sola lección de supervivencia.

La mayoría de los problemas de memoria que he visto vienen de personas que quieren sentirse muy listas y piensan que pueden mentirse sobre sus propios recursos. Se mienten sobre sentirse amados o sobre el uso eficiente de su tiempo. Crean historias falsas que ellos mismos terminan creyendo, pero que no resisten la menor verificación. Allí es donde aparecen las vidas desperdiciadas y las 15 toneladas de queso. Y los recibos de tarjeta de crédito o del internet que no pueden pagar por falta de previsión.

Mucho de mi razonamiento se basa en Santo Tomás: «ver para creer». Uso la observación directa y digital. En los juegos, consulto sitios de terceros para ver estadísticas de muertes y precios; eso me da una idea, pero la memoria debe ser verificada. A veces, simplemente debes contar.

Ahora mismo interactúo con cinco alianzas y tres personajes solitarios con reglas especiales. Son ocho  grupos de personajes diferentes sin contacto entre sí. Tienen memoria, sus valores te llevan a la memoria y sus reglas también. Estoy en medio de asuntos similares al mundo real, donde la «memoria RAM» subió de precio: varios clientes del juego piden a mis industriales ciertas cosas. Se viene una guerra. La memoria no es intercambiable.

En los 90, hubo una serie de Punisher llamada War Zone (Diario de Guerra), escrita por Chuck Dixon. La idea de las entradas era similar a esto. A diferencia de otras personas, yo mantengo la realidad muy a la mano, aunque separada. La gente del trabajo debe saber de la secta en ocasiones, pero no tienen por qué saber otras cosas. Como cuando un tipo le levantó la mano a una cajera y acabó en el hospital porque yo lo mandé allí; él vivía con la «memoria» de que no pasaba nada. Para la cajera y para mí era obvio que su propia madre y su exnovio eran tóxicos, pero ellos tenían su propio manejo de la realidad.

Es un asunto de organización. De ahí viene la idea de la realidad sin concesiones. Tengo cosas pequeñas que hacer en el mundo real, pero crear planes de contingencia para la producción en tres alianzas a la vez y realizar el inventario de materiales es muy parecido a mi trabajo de sistemas y a mi formación contable.

Lo que importa es lo que haces, no lo que hiciste o lo que dices que hiciste. En este caso, lo que me toca es verificar mis inventarios y prepararme para la guerra. Al igual que las notas de Punisher War Zone tomaban sentido después, lo mismo pasó en Chipilo. Es exactamente lo que no hicieron aquellos que terminaron con 15 toneladas de queso inútil.

La solución pragmática erasimple. Anotar lo sucedido como era. Al igual que lo pragmático era entonces usar walkie-talkies en lugar de celulares. Y probablemente sigue siendo igual.

Intercambios y pensamientos

Ya di la plática que tenía pendiente con una startup en México que tenía problemas con su SpringBoot. Me falta pasar cosas en limpio antes de publicar. Cobré algo normal, no por la plática sino por la configuración de tres servidores, que fue sobre todo una prueba de concepto.

Mientras escribo pienso en otros intercambios de tiempo por dinero. Al mismo tiempo tengo cuatro pilotos conectados en Eve Online, moviendo municiones y algo llamado Biofuels. Eve es uno de los pocos juegos donde el multiboxing está permitido (usar varias cuentas a la vez). Creo que puede ser interesante por términos de uso del tiempo eso como ejemplo, pero tengo que expresarlo más bien en una serie de ideas sueltas que llevan a un fin, sin orden cronológico.

Cuando estoy con un cliente por tiempo, es decir, que me paga por dar apoyo y/o desarrollar ciertas horas a su personal (ejemplo cliente de los monolitos o las gaseras), la mayor parte de mi tiempo se iba en estas actividades:

  • Respaldos.
  • Levantarme e ir a ver a los usuarios (5, 10, 20, 30…) sobre si necesitaban algo en lo que pudiera ayudarles.
  • Correr un proceso de detección de incidencias al que llamaba Barrido. Con eso evitaba que cosas que sucedieron antes volvieran a pasar.
  • Y la mayor parte de desarrollo era a nuevas necesidades.

Pero por ejemplo, no acepto clientes de hospedaje web o dominios que no sean de conocidos. ¿Razón? Durante 2007 varias identidades de Julio Diana y su secta. O que en 2012 un cliente que corrí por falta de pago de él, trató de ir con otra empresa reconocida en el ramo de lo que yo daba el servicio, y lo que no sabía él era que yo era el nuevo responsable técnico de allí.

Entre 1998 y 2001 tuve varios clientes que querían pagar en especie. Sea equipo de cómputo o coches. Era razonable entonces, ahora sería razonable en ciertos límites. Pero era cambiar mi tiempo por hacerles un sistema por su bien. Y en el caso del coche era un permiso de compra-venta donde, aprovechando que otro de mis clientes era una agencia de coches, era yo un intermediario entre dos clientes.

Muchos de los problemas de salud de los jóvenes se debe a que de jóvenes cambian salud por dinero, y luego de grandes quieren cambiar dinero por salud. Pero muchas cosas son… automáticas. Incluido el desperdicio de tiempo o el uso eficiente del mismo.

En mis 30s, después de los eventos de 2001, mi uso del tiempo era levantarme, bañarme, ir al trabajo, comer, regresar, ver cosas de mi familia (si estaba a la mano) o cosas de clientes, dormirme. Los fines de semana ir al cine. Mi pareja de entonces había sido acosada por AÑOS por la secta que nos acosó desde el 2000. A ella le tocaron nueve años de acoso, a mí 17. Pero a lo que voy, es que mi tiempo no tenía desperdicio. Entre la presión de la secta y problemas del lado de su familia, esta persona, mi pareja de entonces, empezó a crearse problemas familiares con ellos (supongo que por la sensación de control y poder de mi ingreso vs los de ellos) y creó muchísimos problemas, llevando a que en venganza me mataran a mis perros.

Mientras escribo años después, veo que el uso del tiempo tiene que ver con paciencia e intercambios, no de tiempo por valores, sino por atención. Ejemplo, mi atención estaba en los clientes de los últimos años entre clientes, proveedores y mi familia. Además de atención en mi propia mente.

Yo pensaba, y pienso incluso al ir al Oxxo. La primera vez que vas a un trabajo sueles poner mucha atención a los detalles y después no, vas en babia. O pensando en algo útil, que es la excepción y no la regla.

En México son pocas las empresas donde su gente de sistemas no cabe en una camioneta grande. Por ejemplo, en las gaseras llegamos a ser 12 y… ¡¡21!! De los cuales los usuarios solo querían hablar conmigo y con otra persona, ni siquiera con el jefe del área, porque éramos los únicos que poníamos atención y resolvíamos sus problemas. Eramos 21 que parecíamos 2. Y en empresas de desarrollo, la velocidad de la mayoría y sus errores hacen que los reales quepan en una camioneta. Cuando salí de las gaseras eramos TRES personas de haber sido  21 y me fui porque no quise cambiarme de ciudad.

¿Alguna vez has ido al Oxxo mientras piensas en otra cosa? ¿O vas a comprar comida de perro a una hora que decidiste el día anterior? Las dos cosas son válidas; son uso eficiente del tiempo.

Ahora bien. Si una empresa quiere usar una tecnología gigantesca para coordinar a tres personas de sistemas, lo más seguro es que tarde o temprano corran a dos de ellos. A veces conservan a sus amigos, o a veces me conservan a mí, que resuelvo los problemas. Por ejemplo, de las gaseras del 2000, en 2026 soy el único que sigue en sistemas. Hay otro que sé por referencia que dizque coordina algo en un estacionamiento (programadores) y paga mal, pero no es público y en su momento no hacía nada. En todo caso, manipulaba. Yo me muevo abiertamente. De la empresa de 2020 en la pandemia, éramos siete (desde 2014). Yo el único externo. Y soy el único que sigue cobrando en 2026.

Los clientes y usuarios de mis sistemas que se quedaron acostumbrados a mi nivel de servicio me buscan años después. Tuve un caso muy chistoso en 2011. Una red en la que puse el cableado en 2000  (antes de los problemas del 2001 ) me buscó el cliente por correo en 2011 para mentarme la madre y decirme que qué pasó con la garantía. No entendía yo ni quién era. ¿Más garantía que funcionar diez años sin mantenimiento? ¿Mejor uso del tiempo? Es un poco complicado.

Un contrato es, en muchos aspectos, un acuerdo formalizado para restringir libertades. Un contrato de trabajo es cambiar tu tiempo en dar un servicio por dinero. La compra de algo es decir: «te doy este dinero o este kilo de frijoles» y ya no voy a disfrutar de él.

Me ha tocado ver personas que no quieren formalizar este cambio de libertades. Pero hay libertades que no lo son. Me rijo por un código moral y valores que para observadores externos son más parecidos al estoicismo de Marco Aurelio y al libro del I Ching que a otra cosa. Hay personas que me han dicho que por disciplina parezco un soldado.

Pero no obedezco órdenes idiotas, y de momento no le pongo especial interés a la condición física, porque a los casi 54 tengo cosas más interesantes que hacer.

En su momento me pagaron, por ejemplo, con una camioneta Ram Charger en Guadalajara a cambio de arreglarles un desastre contable y creo que les dí como 20 mil pesos de ahorita. Era un intercambio decente, y el equivalente a unos… cinco meses de sueldo de ahorita o un año de muchas personas.

Comentaba ayer que, al ir a comprar papel de baño en el súper, vi unas pizzas que se veían decentes y económicas. Y sabiendo que los panecitos (bocadillos rellenos de panadería) no están mal, me pareció adecuado hacer un intercambio. Podríamos llamarlo criterio de oportunidad. En realidad, lo he visto también en la compra de casas.

Mi padre decía que el dinero en efectivo vale el doble. Si es cierto, me ha ayudado a hacer buenos tratos; aunque nunca he generado la cantidad de dinero que podía hacer mi papá, sí he estado cerca. Sin embargo, no es lo que me importa. (y si, se que el dinero en efectivo tiene sus problemas en épocas de devaluación o de muy bajos intereses pero eso es tema aparte)

Un ejemplo (usando cantidades simuladas y no actualizadas). Hace unos 30 años me comenta el antiguo dueño de mi departamento que si no estaba interesado en otro. Ese valía unos 950 mil. Yo tenía 670. Pues la persona necesitaba el dinero, así que se quedó con 640 por los gastos de notario y yo con un segundo departamento. ¿Lo podría haber hecho gastando mi tiempo y dinero en tonterías? No.

Lo único que NO estoy haciendo ahorita con mi tiempo que debería estar haciendo es sacar a pasear a mis perros, pero eso me crearía otro problema que no detallaré aquí.

Comenté también que en 1999 o 2000 tuve un Pontiac Sunfire de agencia por unas tres semanas y que me di cuenta de que no lo necesitaba. Lo regresé por las circunstancias (era indispensable uno similar para la empresa asi que me regresaron el dinero) . Tengo un Motorola G31 en lugar de un iPhone 25. Usando el ejemplo de Eve Online, hace como unos siete meses compré una cantidad impresionante de material de PI (explotación planetaria) y además el equivalente a 6,270,000 m³ de Biofuels; o usando un símil, es algo así como comprar un mes y medio de suscripción de algo aparentemente inútil y en un lugar peligroso. Y eso era el Biofuel, era como el doble de cosas útiles. Pero en el trato aquel, mi ganancia fue en un solo movimiento como de 2 o 3 meses de suscripción, solo que esa parte era en especie. Yo no iba a usar el biofuel, o por lo menos no tanto, y en otro uso eficiente del tiempo, lo saqué en diciembre en segundo plano en una operación de evento Winter Nexus de 80 naves. Y ahorita, además de juntar las municiones, he ido juntando como producto secundario el Biofuel y vendiéndolo.

Un ejemplo. Trabajé en una fábrica de galletas que enviaba tráileres llenos a la frontera con USA y a veces regresaban vacíos. Digo: a veces. Después me tocó hacer un sistema para coordinar la importación y transporte de sopas Maruchan/Nissin en esos tráileres vacíos.

Algo por el estilo pasa con el tiempo. No se trata de divertirte, sino de no desperdiciar. No es ir en dos direcciones a la vez, sino moverte cuando es necesario. ¿Alguna vez has mandado a tu hija al mandado? Pues seguro sí. . Mi familia sabe defenderse y no la mandaría a un lugar peligroso, pero sí al Oxxo. Así que mientras escribo tengo pilotos de Eve en modo automático moviendo biofuels, y ya vendí el 75%. Y con eso me sobra para comprar otra cosa, que es a lo que voy.

Conozco varias personas que tienen coches BMW y problemas de dinero. En el juego estoy pensando en comprar un carguero Avalanche (que mueve muchísimo material a la vez y es el único que tiene capacidades de combate), pero es porque implica un ahorro en tiempo y puedo venderlo después. Cabe destacar que puede cargar mas de lo que necesito, que cualquiera de mis cargueros actuales. Pero la idea es del uso del tiempo. Por ejemplo, hace unos años compré un piloto especializado en una nave que tenía potencial. Moví con él 30 Jump Freighters Rhea fuera de null, ganando unos diez meses de suscripción, y vendí después al piloto al mismo precio. Solo gasté la transferencia. Fue un uso eficiente del tiempo porque no solo moví las naves, sino que las moví llenas.

Sería en este caso un intercambio de sacar Biofuels y Venderlos, por la Avalanche. En la Avalanche, el blindaje no estorba a la carga; es una estructura pensada desde el origen para resistir sin dejar de ser útil.

Pero tu tiempo no tiene reversa. Se pueden cometer errores como manejar a muy alta velocidad y matarte, o comprar un BMW que no necesitas y que en la vida real se deprecia. En este caso estamos hablando de un riesgo nulo, equivalente a un mes de suscripción, dinero virtual que obtuve de vender algo aparentemente inútil pero  que dió como opción da la posibilidad de ahorrar tiempo dentro del juego. En vez de mover unos 670 viajes, es posible que lo haga en 30. Y si no me gusta o no funciona, puedo venderlo con una pérdida del 10%. Y es más util que el Biofuel en medio de ninguna parte.

Es un trato justo. Se trata del uso eficiente del tiempo. El dinero es secundario, en la vida real y en el juego. Y soy más de una camioneta Ram Charger que de un BMW; la finalidad es la misma: ahorrar tiempo. No como sustituto de inseguridades personales. Un occator en Eve en lugar de un un Hulk o Rattlesnake. Es el equivalente de usar un Seat en lugar de un BMW.

Y mientras escribo, cuatro pilotos en simultáneo movieron el 15% del valor de la Avalanche (entre los cuatro) en una ruta de 60 saltos.

En lo que decido que hago, mis cuatro pilotos despegan su OCCATOR en un viaje de vuelta, y no vacios.

Mientras tú descansas, alguien trabaja.

Finales del Evento

Tengo gustos simples.

Ayer tuvimos una reunión en una de mis casas con personas de «Ojos Alerta» (el grupo de los Azulejos). En la plática salieron varios temas sobre indicadores y, para explicar un punto, puse un ejemplo.

El 2001 fue para mí un año complicado. Una de las cosas que comenté es que, en ese entonces, una pizzería vendía pizzas tradicionales simples (nada de «dos por uno») la hawaiana grande costaba 50 pesos de aquel tiempo. Ayer, mientras comíamos unas pizzas cuadradas que venden unos vecinos a 330 pesos (éramos seis y compramos dos, así que fueron 660 pesos), pensaba que esos 16 USD realmente valen la pena por su calidad. La pizza de 4 USD no era mala tampoco.

Sin embargo, cuando pasé a comprar papel higiénico a un Bodega Aurrerá sobre la carretera, vendían en la tienda una pizza de caja de pepperoni simple en 79 pesos. Como parte de un experimento la compré y nos la comimos; no estaba mal. Pero hay tres detalles curiosos que comenté:

  1. Podemos decir que la calidad de la pizza de $50 de 2001 y la de $79 de 2026 es similar.

  2. Empecé a trabajar en 1991. Mi casa, donde fue la reunión, se construyó también en 1991. Aunque la compré hace menos de diez años, en su momento hice cuentas sobre cuántos meses de mi sueldo inicial se necesitaban para comprar esa casa (en su estado original, sin mejoras).

  3. Mi hija empezó a trabajar el año pasado. Da la casualidad de que, si proyectamos su sueldo por el número de meses del cálculo anterior, le bastaría para comprarse una casa simple en Atizapán u otras partes del Estado de México.

Mi hija, como muchos jóvenes, desperdicia su dinero. Yo conseguí un ascenso en mi trabajo el primer día y, para fines prácticos, al final de ese primer año (entre bonos y otras cosas) ganaba el triple o quizá el cuádruple. Además, hice trabajos adicionales en mi tiempo libre. El primer proyecto fuerte de sistemas que realicé fue en 1991: organizar una red Lantastic para una migración de SAT 92 y escaneos para discos láser. Éramos ocho personas; yo no estaba a cargo, pero ese dinero me sirvió para generar reservas.

Terminé ese año con casi dos años de mi sueldo original ahorrados, sumado a la venta de mi camioneta Ram Charger al llegar a México (comprada en Guadalajara con mi propio dinero). Mis fondos de reserva equivalían a tres años de sueldo original. Lo interesante es que, con poco más de eso y una diferencia de 1,000 USD (un mes de sueldo actual de entonces), me compré mi primera casa.

A lo que voy es que la situación de mi hija es similar. En aquella época de 1991 las pizzas no eran populares; se conocían, pero se popularizaron más o menos cuando abrió el Pizza Hut pequeño en Polanco, a la altura de París Londres. El uso de los recursos generacionales es diferente, pero incluso en 2001, cuando todo salió mal, había una equivalencia. Realmente las pizzas de $50 y la de $79 tenían buen sabor, aunque ahora, como adultos, podamos comprar las cuadradas de $330 (así como yo compraba Pizza Hut para mí solo en 1996 y 2002).

El fin y el principio

¿Qué tiene que ver esto con el final del evento? El I Ching tiene dos hexagramas, el 63 y el 64, que hablan de «después de la consumación» y «antes de la consumación». Como dice el libro, muchas veces hay que considerar las cosas como un nuevo principio. La mayoría de las personas caen en la trampa de esperar para «darse un premio». Yo raramente lo hago. Los regalos que doy a mi familia o parejas nunca son excesivos (ocasionalmente sí), pero son decentes; en cambio, mis autorregalos suelen costar una quinta parte de eso. Mi padre se regalaba libros; yo, por ejemplo, este fin de año regalé unos 2,500 a 3,000 pesos en la casa y mi autorregalo fueron algo de 400 pesos(el precio de venta al transferir / vender un personaje de eve online) y dos objetos útiles de 100.

He comprado celulares y computadoras nuevas, pero siempre como instrumentos de trabajo, no como premios. En 2017 armé una computadora estándar para estándares de EE. UU., pero comprada aquí en México por unos 1,500 USD. Sigue siendo mi «caballito de batalla» nueve años después. La compré porque preveía un aumento en el precio de la memoria RAM y armar un equipo con 32 GB en ese entonces era una buena idea. Hace tres semanas, por el mismo motivo, le añadí 8 GB extra por 600 MXN (para un total de 16 GB Kingston Fury) a una PC secundaria con cuatro monitores. No fue un premio, fue una inversión previendo un aumento. No fue un fin de ciclo, ni miedo.

Capacidad de trabajo, deseo de trabajo y previsión.

Movimientos en el vacío.

Mientras escribo esto, con la otra mano acaricio un perro y estoy volando en Eve Online. Son las 19:04 y llevo «Nanite Repair Paste», un producto especializado que fabrico en un lado del universo para llevarlo al otro. Tengo otros dos pilotos en automático. Hoy es el último día del evento de fin de año y la última oportunidad para realizar ciertas evacuaciones seguras (si sabes lo que haces) hasta finales de año. Ya saqué y vendí las naves que mencioné en otros posts (las Thorax y Cormorant). Saqué las municiones y las puse en lugar seguro, pero concentrarlas me tomará semanas. No tengo prisa. Eso me pasa por transformar casi un año de materiales / minerales en dos años de municiones, ambos a valor de venta. Al regresar de la venta de Nanite usaré el viaje de regreso para hacer un pequeño paso de la concentración de municiones para no moverme en blanco. Aprovechar el tiempo en la medida de lo posible, por previsión. En unos meses las municiones se habrán ordenado solas en apariencia.

Mi nave de transporte simple, una Occator, espera mi siguiente movimiento; tengo menos de un minuto para decidir. No grabo la imagen porque mi monitor de 25 pulgadas (modelo 2015) generaría un archivo de más de 3 MB, demasiado grande para los estándares de WordPress.

Voy haciendo aproximaciones sucesivas. Realizo pequeños movimientos con la nave, como en un coche: aunque tenga la vista en la pantalla o en la carretera, la memoria corporal y la inercia mueven tanto la nave como la vida de varias personas.

Me explico: el año pasado, el «cliente de los monolitos» no me pagó durante cinco meses. Pero yo no vivía de ese dinero; para mí era un extra equivalente a unos diez meses del sueldo inicial de mi hija, pero un ingreso secundario al fin. No me muevo por codicia ni por la falacia del «costo hundido». Me muevo por honor, valores y, a veces, por previsión razonable.

Por ejemplo, llevo semanas con una presentación y levantando servidores secundarios para un cliente eventual, lo cual me impidió dedicar tiempo a lo que quería hacer en Eve Online. Tengo un personaje donde concentro industria y recursos, pero tenía pertenencias en cuatro lugares muy peligrosos y unos veinte medianamente peligrosos. El lugar más crítico ahora es donde se mueven los restos de Pandemic Horde. Moverme allí no tiene sentido; no porque sean enemigos, sino porque si vas a hacer algo que requiere 80 viajes en silencio y vale unos cinco meses de suscripción, no lo puedes hacer en sistema donde hay 200 pilotos en promedio, mitad amigos mitad enemigos con cualquiera de mis personajes, así que no hay prisa, me haya pagado el cliente o no.

En otro de los lugares peligrosos decidí no hacer nada por la logística de este cliente y dejé ahí el equivalente a una semana de suscripción. Haré preparativos y lo sacaré el próximo año. Aun así, todos los objetivos pequeños se cumplieron, mantuve mi mente en paz y logré el 85% de lo que quería hacer.

Sí, el fin de año es un nuevo principio. Pero no me preocupo. Es, como comentaba ayer, un túnel que es a la vez presente, pasado y futuro, guiado siempre por los mismos valores.

Capacidad de trabajo, deseo de trabajo y previsión.

Parte 5 LAMP Carrito de compras sin REACT con Spring Data JPA

Hemos hablado antes de que muchas personas dejan mal configurados los servidores. Yo no pretendo decirte como usar springboot o hibernate paso a paso. No conozco tu entorno. Pero si se que REACT está causando muchos problemas. El principal es que con conexion decente y pc decente en proyectos medio complicados cada build compile bien hecho puede tardar 8 minutos. Por ejemplo, para corregir una falta de ortografía o un cambio de color. Mucho del problema son los pasos intermedios que tiene REACT. Y que del 2022 al 2025 explotó en México esta tecnología del 2014, si.

En 2026, ¿por qué un «Hola Mundo» en React necesita descargar 400 MB de node_modules?

Sumale que Maven recompila todo cada vez y Gradle solo lo que cambió.

Vamos a revisar y actualizar un poco un código de terceros, que es de 2019, y que usa Thymeleaf y JPA Spring no hibernate en 2019. No es perfecto pero es una prueba de concepto.

Pero el primer punto es limitar la memoria. No lo hagas si no entiendes como configurar hibernate. Puedes seguir este «tutorial» sin hacer esto, pero este es el bonus experto:

 

La Precaución Crítica: Hibernate NO Puede Comerse Todo

El código que usaremos de ejemplo es de 2019. En ese entonces y ahora muchos asumen que Hibernate podía usar toda la RAM disponible era «aceptable» porque los servidores tenían 8-16 GB. En 2026, con empresas medianas, eso es suicidio por el costo de la nube sea cual sea tu memoria..

 Configuración application.properties REAL para mundo real:

# === LÍMITES DE POOL DE CONEXIONES ===
spring.datasource.hikari.maximum-pool-size=5
spring.datasource.hikari.minimum-idle=2

# === HIBERNATE: NO CACHEES TODO ===
spring.jpa.properties.hibernate.cache.use_second_level_cache=false
spring.jpa.properties.hibernate.cache.use_query_cache=false

# === LÍMITE DE STATEMENTS PREPARADOS ===
spring.datasource.hikari.max-lifetime=600000

# === LOGGING (para diagnosticar) ===
logging.level.org.hibernate.SQL=WARN
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=WARN

¿ Por Qué Estas Líneas Salvan Tu Servidor ?

Sin configurar:
– Pool conexiones: 10 (default) × 30 MB = 300 MB (y a veces tienes 20 o mas)
– Cache L2 Hibernate: Crece hasta 500-800 MB
– Statements preparados: Sin límite = leak de memoria
– Total desperdiciado: ~1.2 GB**

Con configuración:
– Pool conexiones: 5 × 30 MB = 150 MB
– Cache L2: Deshabilitado = 0 MB
– Statements: Con lifetime = No leak
– Total usado: ~200 MB

El Código que vamos a ver es de 2019 y luego lo vamos a analizar un poco.

NO LO ESCRIBI YO.

Nota muy interesante segun yo:

Quiero dejar claro que este tema me parece curioso especialmente porque en 2017 me encontraba en la situación de tener que contratar programadores php y les daba 3 horas para hacer desde cero, sin objetos, crud de tres tablas inventario, productos y ventas, con la salvedad que consideran que el producto podia tener dos proveedores. Solo el 2- 5 %  lo podian hacer. el 70% de los que llegaban no  pasaban a examen porque NO me podían hacer un hola mundo en php en la entrevista. Y cuando programadores existentes en una empresa me decían que no se podía hacer en ese tiempo, yo lo hacía desde cero, frente a ellos, sin internet en poco menos de hora y media. Y de pilón evaluaba su conocimiento de base de datos.

De este ejemplo EL concepto principal: Hay Alternativas a React probadas, mas rápidas y eficientes en memoria desde 2019

Ventajas: Muestra Thymeleaf y un crud funcional sin react. Con Thymeleaf Usa el Thymeleaf Layout Dialect, que puedes hacer algo real y reutilizable sin los problemas de REACT. Muestra Gradle, Bootstrap 4 y stack completo de manera mas eficiente que lo que muchos tienen en 2025. Es fácil de entender para los que vienen de otros frameworks porque no usa dependencias raras. Lo puedes reproducir sin descargar medio internet y actualizarlo no es tna difícil.

Problemas: No hay spring security, se reinicia el servidor y se pierde, no te dice nada de hibernate, javax ya fue sustituido por jakarta. Las validaciones solo son una buena idea y deberían ser en backend, es ventaja y deventaja. Podemos decir que es mala UX pero funcional, aunque te salva de ataques de inyección SQL y es simple. El evento viene como es, si se queda a la mitad puede haber venta guardada pero inventario no descontado.

  • el proceso se queda a la mitad, se guarda la venta pero no se descuenta el inventario. Eso en 2019 se arreglaba con un simple @Transactional. A final de cuentas no importa si el código original lo tiene o si es parte de las ‘minas’ que tenemos que desactivar al revisar código ajeno.

Resumen: Es simple, funciona, y si bien tiene que adaptarse para crecer, debes dar gracias si ves código como ese en lugar de 1600 líneas para validar existencias.

QUE HARÍA YO: Si me mostraban esto en 2019, o ahora, agarraba la base de datos, pasaba los campos de float a DECIMAL 14,6 o bigdecimal en términos java, y lo reescribía de cero en php y mostraba todo el sistema terminado al día siguiente en un solo archivo con niveles de acceso y respetando el histórico. Y lo hago todavía. En 2025 hice algo similar tres veces y fue un año flojo.

Que tiene este codigo de Parzebyte:

Es código real con problemas reales que resuelve problemas reales mas elegante que mucho que vas a ver. No te estoy diciendo que lo uses en producción, sino que gradle en lugar de maven y thymeleaf te pueden ayudar a reducir el gasto de nube y de pilón veremos como puede arreglarse código heredado sin reescribir todo.

Escribir esto me tomó unos 20 minutos. El análisis de abajo otra media hora.

En el tema anterior puse un carrito de compras que uso como ejemplo. Es muy buen front end pero muy mal back end.

Codigo fuente:

https://parzibyte.me/blog/posts/sistema-ventas-spring-mvc-mysql-bootstrap/

Base de datos:

La base de datos https://github.com/parzibyte/sistema-ventas-spring-boot/blob/master/src/main/resources/esquema_ventas_springboot.sql

Archivo Gradle https://github.com/parzibyte/sistema-ventas-spring-boot/blob/master/build.gradle

El código es limpio y por lo mismo «bien documentado» para entender gradle. Pero…. Hay demasiadas cosas que van a explotar. De entrada no te dice que version de gradle ni requisitos de compilación ni limitaciones a tomar en cuenta. No me extrañaria que el pom sea de otro lugar.

Vuelvo a decir : No lo escribí yo.

Este código es un EXCELENTE tutorial de Spring Boot. Cumple su propósito educativo.

PERO si lo llevas a producción tal cual: Perderás dinero (Float)  Tendrás inconsistencias (MyISAM)  Crashearás (sin WHERE) y Te multarán (sin @Transactional).

El método de separación de clases se usa para que varios programadores puedan trabajar el mismo tiempo en diferentes partes del proyecto sin pisarse los pies. Pero, siendo sinceros, en 33 años de programación he manejado sistemas con 90 a 100 tablas y con información delicada , los cambios son relativamente frecuentes y no triviales. Así que srping boot en un sistema de 50 tablas tienes un problema serio.

La idea de usar hace años laravel y ahora react y springboot (que son de hace diez años ahora en 2026) es ser productivo de inmediato. El código que mencione está hecho sobre spring data JPA que lleva un ORM integrado. Haciendo una revisión en este momento pienso lo mismo que habría pensado en 2019. La persona tomó un curso pero no ha trabajado en algo real. Se agradece la intención eso sí y sirve como ejemplo de FRONT END.

El primer punto que se destaca para mi es que la base de datos usa campos float debiendo ser campos DECIMAL. Es un tema no menor, pero en dinero o vidas humanas cuenta.  Usar double, money, currency, float son igualmente malos.

El segundo es que es MYISAM, no INNODB, lo cual es en muchos aspectos mala práctica desde 2013 sea el lenguaje que sea por varias razones.

Un ejemplo simple que puedes buscar el significado en internet.

La Solución de Oro (Que ya existía en 2019): Para arreglar el «Back-end» en cuanto a conexiones inestables, solo falta una línea arriba del método terminarVenta en el VenderController.java:

Java

@Transactional(rollbackFor = Exception.class)
public String terminarVenta(HttpServletRequest request, ...) {
    // Si algo falla aquí adentro, Spring hace ROLLBACK automático
    // y la base de datos queda como si nada hubiera pasado.
}
  • Nota Senior: Si el autor hubiera usado esta anotación junto con InnoDB, el sistema sería 95% confiable. Pero como usó MyISAM, ¡la anotación no sirve de nada! MyISAM no sabe qué es un Rollback. Es el «doble error» de este proyecto. Pero Inno existe desde varios añes antes de 2019 que se hizo el tutorial.

EL 95% de los problemas estarían resueltos si :

  • usando campos decimal en lugar de float y en lasvariables y métodos respectivos.
  • innodb en lugar de myisam
  • uso de Transactional

Otros puntos intersantes:

  • No vi usar where en ningun lado. OutOfMemory con muchos datos o muchas aplicaciones en el servidor o si el usuario esta viendo videos en facebook al mismo tiempo
  • En mi punto de vista editar el nombre de producto es un gran NONO jamas y deberia comentarse en cualquier carrito de compras . No puedes sobreescribir codigo de barras, clave hacienda, Nombre o descripción del producto. Te lo digo por experiencia . Hay casos extremos como que reusen el Código para otro producto y es un mega desastre. No es algo menor el problema de recliclar claves de producto. Literalmente Cuesta vidas. Siempre es mejor crear una clave de producto nueva.
  • Por JPA y el ORM la base de datos es … nominal. No hay numero de versión.  que pasa cuando permites o pones un campo nuevo como tipo de impuesto con el ORM ? y si cambias lo campos de float a decimal ? Deberías checar que versión de base de datos es y si el campo existe.
  • request.getSession().setAttribute(«carrito», carrito); // el carrito no expira nunca

A propósito. Estoy de acuerdo en usar el id del producto en el get, pero lo hago por bitácora, no por las mismas razones y borrar lo permito solo a usuarios identificados, y si no hay historial de ventas del producto.

Revisando el navegador del repositorio https://github.com/parzibyte/sistema-ventas-spring-boot

Estas son las notas que tomé..

producto.java

private Float existencia;

// Así se vería  variable para mapear el DECIMAL(14,6)
private BigDecimal precio;

// Al recuperarlo de la base de datos o crearlo:
BigDecimal valor = new BigDecimal(«12345678.123456»);

En lugar de bigdecimal o decimal Hay métodos adicionales de multiplicacion que a veces se usan pero es muy raro verlos. Aquí afortunadamente no estan porque pueden llevar a overflow entre 32 y 64 bits de compilador variable además por elsistema operativo del servidor.

Precisión inmutable: Nunca perderás un micro-centavo en una suma de 10,000 facturas.

/ProductosController.java

Problema: recibe id del formulario, asi que con un f12 o o postmanpuede borrar cualquier producto del sistema. No hay permiso para verificar si el usuario puede hacerlo o si hay historial asociado de pedidos, existencia compras oventas.

@valid solo verifica que sea mayor a 0. Pero si hay concurrencia dos usuarios sobreescriben el registro. La existencia se leyó hace cinco minutos que cargaron el formulario.

(Como dije antes en lo personal yo considero que es correcto tener el id en el get pero por bitacora, No por las razones que menciona el.)

producto vendido .java.

Poner aqui una lista de precio seria horrible. y como consultas el histórico ? otro problema.

public Float getTotal() {

el modelo en gettotal no considera que pasa si la existencia es cero. y si el precio es negativo ? no deberia ser pero en ocasiones te lo encuentras por kits, por validaciones (ej precio = -99 significa en varios de mis sistemas ese producto no se puede vender a ese cliente ) se le llama valor centinela. Debería documentarse en el código pero no hay reglas de negocio en el código ni precauciones básicas de concurrencia que yo vi desde Clipper 5 en 1993.

O sea si la existencia es cero, estas documentando que alguien se llevo un medicamento que no tenias ?

vender controller.java

espera una buena conexion. a veces el cliente empieza en una pestaña y termina en otra. Su bucle de terminar venta viola los principios transaccionales, y el principio de atomicidad . Dos cajeros pueden vender el producto al mismo tiempo. O dos clientes pueden por ejemplo en línea comprar boletos para un concierto.

float total = 0;
for (ProductoParaVender p: carrito) total += p.getTotal();

que puede llevar a errores de redondeo y que no cuadre la contabilidad o la venta del día o que no puedas timbrar una factura. Facturas rechazadas y multas por simplemente usar float.

venta.java

public Float getTotal() {
Float total = 0f;
for (ProductoVendido productoVendido : this.productos) {
total += productoVendido.getTotal();
}
return total;
}
Segun yo debió ser….

import java.math.BigDecimal;
import java.math.RoundingMode;

public BigDecimal getTotal() {
// Inicializamos con CERO absoluto, no con una aproximación binaria
BigDecimal total = BigDecimal.ZERO;

if (this.productos == null) return total;

for (ProductoVendido productoVendido : this.productos) {
// Obtenemos el total del producto (que también debería ser BigDecimal)
BigDecimal subtotal = productoVendido.getTotal();

// Sumamos con precisión exacta
total = total.add(subtotal);
}

// Establecemos la escala de salida (ej. 2 decimales para dinero)
return total.setScale(2, RoundingMode.HALF_UP);
}

y tendriamos que cambiar en productovendido.java // En ProductoVendido.java
public BigDecimal getTotal() {
// cantidad (ej. 1.500) * precio (ej. 10.50)
return this.cantidad.multiply(this.precio)
.setScale(2, RoundingMode.HALF_UP);
}

La base de datos la genera el ORM pero además está en https://github.com/parzibyte/sistema-ventas-spring-boot/blob/master/src/main/resources/esquema_ventas_springboot.sql

es my isam, no soporta transacciones ni acid e ignora muchas veces llaves foraneas.

Los campos son float cuando deberian ser decimal (14,6);

CREATE TABLE `hibernate_sequence` (
`next_val` bigint(20) DEFAULT NULL
)

Usa un bigint para la secuencia, pero las tablas usan int(11). En el momento que la secuencia pase de 2,147,483,647, Hibernate intentará insertar ese valor en un int(11) y la base de datos colapsará. Es una inconsistencia de tipos clásica de «programador de tutorial».

Tipos de datos: Confirmado el desastre del FLOAT

fecha y hora deberia ser date time o timestamp. Yo me iriía por datetime

14 archivos de templates…. y es mas sano que react (si no has leido la pagina de REACT de mi sitio te recomiendo que la leas ahora. En diciembre 2025 habían dos CVE importantes, uno de ejecución Remota y otro de permitir ver elcódigo de tu app, por eso menciono aqui Thymeleaf como alternativa)

Analizando el pom.xml https://github.com/parzibyte/sistema-ventas-spring-boot/blob/master/pom.xml

Ni siquiera creo que sea de este proyecto. que hace aquí ?

no hay dependencia de jpa ni de mysql o maria db. spring-boot-starter-data-jpa El conector de MySQL o MariaDB.

No hay rastro de spring-boot-starter-security. Confirmado: Seguridad 0.

No hay librerías de precisión como Jackson-datatype-jsr310

El groupId dice org.springframework. Eso es un error de práctica. El groupId debería ser el dominio del autor (ej. me.parzibyte). Usar el de Spring es como si tú pusieras en la cabecera de tus archivos PHP que el autor es php.net.

que le falta al pom ? bueno…

De entrada es buena práctica especificar el spring security aunque tengas java superior al 17. Y además hay conflictos entre versiones mayores de spring security, por ejemplo la 7. (recuerda que segun yo este proyecto usa gradle, no pom)

Motor de persistencia.

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

driver

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>

La validacion de bean es una especificacion java

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>