<?xml version="1.0" encoding="utf-8"?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
   <generator>Gesbit</generator>
   <link>http://www.burdjia.com/bitacora/</link>
   <title>Soliloquios del Guiller - Archivo de la categoría "Cuentos del abuelo" en la bitácora</title>
   <description>Neuras e idas de olla de un informático y artista frustrado</description>

 <item>
  <guid>http://www.burdjia.com/bitacora/el-valor-de-medio-centimo/</guid>
  <link>http://www.burdjia.com/bitacora/el-valor-de-medio-centimo/</link>
  <pubDate>Wed, 09 Feb 2011 22:00:48 +0100</pubDate>
  <title><![CDATA[ El valor de medio céntimo ]]></title>
  <description><![CDATA[ <p>Hoy voy a contar un nuevo episodio en mi vida como desarrollador contra-corriente.  Como ya conté en mi <a href="http://bitacora.burdjia.com/por-que-no-confio-en-los-colectores-de-basuras/">artículo sobre los colectores de basuras</a>, llevo tiempo trabajando en un megaprograma de gestión de clientes, pedidos, facturas, análisis, seguimiento y más cosas. También dije que hay varias cosas de este proyecto con las que no estoy de acuerdo y de las que me he quejado en repetidas ocasiones, empezando por que la planificación no fue suficiente en su momento.  Precisamente esta falta de planificación ha sido la causante de un problema que reventó hace pocos días.</p>
<p>Hace tiempo, al principio, sugerí que íbamos a tener problemas con el redondeo. Este no es un problema trivial, porque si no se hace bien aparecerán discrepancias y luego no hay forma de cuadrar las cuentas.  Ya entonces propuse una forma de evitarlo que usé con éxito hace años en un Terminal Punto de Venta que desarrollé cuando trabajaba en la empresa <em>Asintec Gestión</em>.  En aquel programa, en lugar de almacenar el valor real de los productos guardábamos un valor ficticio y lo guardábamos como un número entero.  Para obtener el valor real se dividía este número ficticio por un factor que dependía de la divisa;  así para los euros dividíamos por 100.000, mientras que para obtenerlo en pesetas dividíamos por 601.  Con este método nos quitamos dos problemas:  la conversión entre divisas (importante, porque se hizo para un hotel, y además coincidió con el paso de la peseta al euro) y teníamos una precisión de hasta la milésima de céntimo de euro, más de lo necesario.  Además, los ordenadores son pésimos con el cálculo fraccionario, siendo mucho más precisos si calcula con números enteros.</p>
<p>Con la aplicación que estoy desarrollando ahora, sin embargo, tampoco en esto se me hizo caso y se me obligó a almacenar y realizar todos los cálculos con euros “reales”.  Y no sólo eso, sino que la precisión se limitó a dos decimales, esto es, a un céntimo:  ni siquiera una fracción de céntimos, sino a céntimos enteros.  Esto ya es un problema con el cálculo de impuestos.  La cosa empeoró cuando en Julio entró en vigor el nuevo IVA<sup><a href="#nota_valor_centimo">1</a></sup>.  El cliente quiso que los precios finales se mantuvieran invariables aun con el cambio de IVA, sin embargo al hacer el cálculo siempre faltaban o sobraban uno o dos céntimos en cada producto.  Canté aquello de “os lo dije” con toda la sutileza de la que fui capaz y volví a sugerir la solución que he explicado antes, pero de nuevo no me hicieron caso y la solución impuesta fue aumentar en un decimal la precisión (es decir, hasta la décima de céntimo) porque así ya no faltaban ni sobraban céntimos al sumar el nuevo impuesto y se solucionaba el problema.</p>
<p>Hasta que se demostró que no era así.  Hace unos días, un cliente se quejó porque hizo un pedido por un importe aproximado de 1.500€, pero la factura que le enviaron había una diferencia de 21 céntimos a favor de la empresa.  Por más que revisé los cálculos, todos eran correctos, tanto en el albarán de pedido como en la factura, sin embargo la discrepancia permanecía.  Yo sabía que era un problema de redondeo, pero no lograba descubrir dónde se producía la diferencia.  Al final lo descubrí por casualidad.</p>
<p>Resulta que del cambio en la base de datos se encargó mi jefe, y lo realizó sólo en la tabla que almacena la información de los productos en venta.  Sin embargo, en nuestro programa el precio de los productos se almacena también en cada factura, de forma que aunque cambie el precio de los productos este no varía también en las facturas, y en la tabla donde se almacena el precio en factura no se hizo el cambio.  Es decir, que el precio del producto se guarda con tres decimales, mientras que el precio en factura se guarda con dos.  ¿Y dónde está el problema?  Pues sencillo:  en unos productos el precio es de tantos euros, tantos céntimos y menos de medio céntimo, lo que al redondear a dos decimales no afecta al precio salvo si son muchas unidades (por ejemplo, si el precio es de 10'652 al redondear queda 10'65), pero en otros es de tantos euros, tantos céntimos y más de medio céntimo, por lo que al redondear a dos decimales ese “más de medio céntimo” hace que el precio suba al céntimo siguiente (por ejemplo, de 10'656 queda 10'66).  Es decir, el mismo problema que existía al calcular el nuevo valor neto para ajustarlo a los nuevos IVA y Recargo de Equivalencia; era una bomba de relojería.</p>
<p>Todavía no sé si está arreglado, ya que conseguí cargarle el mochuelo a quien realmente tuvo la culpa.  Me gustaría pensar que en el próximo proyecto me harán más caso pero, visto lo visto, me temo que voy a tener que sufrir estas cosas durante mucho tiempo, todavía.</p>
<hr />
<p id="nota_valor_centimo"><sup>1</sup> Lo del IVA fue otra buena, porque se puso "en duro", es decir, que para añadir los nuevos IVAs tuve que cambiar varias fórmulas matemáticas y comprobaciones en un buen número de archivos.  Evidentemente también rechazaron mi propuesta de guardar los impuestos en la base de datos para poder añadirlos y eliminarlos a gusto sin tener que cambiar ninguna fórmula;  recuerdo perfectamente que me dijo que no porque, total, era muy poco probable que cambiaran los impuestos.</p> ]]></description>
 </item>

 <item>
  <guid>http://www.burdjia.com/bitacora/fauna-de-recreativos/</guid>
  <link>http://www.burdjia.com/bitacora/fauna-de-recreativos/</link>
  <pubDate>Wed, 19 Jan 2011 22:40:47 +0100</pubDate>
  <title><![CDATA[ La fauna de recreativos ]]></title>
  <description><![CDATA[ <p>Hace unos días, la web Pixfans publicó el artículo <a href="http://www.pixfans.com/la-fauna-que-habitaba-los-salones-recreativos/">"La fauna que habitaba los salones recreativos"</a>, artículo que me ha hecho recordar mis tiempos de jugón. En él describe algunos arquetipos que frecuentaban esos locales, normalmente ruidosos y oscuros. Si queréis saber lo que se cocía ahí dentro, leéroslo. Aquí espero.</p>
<p>¿Ya? Perfecto. Pues resulta que leyéndo la descripción de lo que vienen a ser los "chunguitos" (nada que ver con el famoso <a href="http://es.wikipedia.org/wiki/Los_Chunguitos">trío musical</a>), me ha venido a la memoria que, a pesar de que en mi querido <a href="http://www.seriezeta.com/lavozdegamonal/2006/03/06/estatuto-de-la-republica-independiente-de-gamonal/">Gamonal</a> estos especímenes no escaseaban, apenas tuve problemas con ellos. Por lo que sé, la razón de que no me molestaran fue que me me hice con una reputación gracias a uno de esos impresentables.</p>
<p>Yo debía tener unos quince años, y por aquel entonces peinaba raya a un lado y vestía mis gafas de siempre y camisa. Total, que un chunguito se pensó que iba a poder conmigo, y se acercó con su nube de gorrones y apegados justo cuando comenzaba mi ritual partida de <a href="http://es.wikipedia.org/wiki/Street_Fighter_II">Street Fighter II</a> (recuerdo que entonces estaba intentando pasármela con <a href="http://www.google.com/images?&amp;channel=fs&amp;q=chun+li&amp;oe=utf-8">Chun-Li</a>) para meterme caña: que si le doy un pito, que si le doy cinco duros, que si total iba a perderlos porque era un manta, que si Pascual... y yo negándome, aunque mi cerebro me decía que si no accedía tal vez perdiera algo más que cinco duros, pero como era joven e inconsciente (quiero decir aún más que ahora) no me hice caso.</a>
<p>El pavo se envalentonó por mi voz de pito, y metió mano al mando y los botones al grito de <q>"Pues te jodo la partida"</q>, justo cuando a Zangief le dio por hacerle un 69 a Chun-Li; le aparté la mano con un brusco movimiento de brazo mientras los dos luchadores volaban por la pantalla en pleno éxtasis. El chunguito este se lo tomó mal y de un topetazo intentó tirar mis gafas al suelo.</p>
<p style="text-align: center;"><a href="http://bitacora.burdjia.com/fotos/zangief_chunli_super.jpg"><img src="http://bitacora.burdjia.com/fotos/zangief_chunli_super.jpg" title="Cariñito de Zangief a Chunli." width="550" /></a><br />Tal que así se encontraba la partida en ese momento...<br /></p>
<p>El resto está borroso en mi mente, y no es una licencia poética sino una realidad ya que sin gafas lo veo todo borroso. La cosa es que antes de que la mano del bravucón se alejara lo suficiente, y aún con las gafas en caída libre, le agarré por la muñeca con una mano, aseguré las gafas en la otra y giré tres veces sobre mí mismo pasando su brazo sobre mi cabeza, retorciéndoselo hasta inmovilizarlo por la espalda. Que conste que me sorprendió más a mi mismo que a mi agresor, porque no me había peleado nunca (y después de eso, no he vuelto a hacerlo). Entonces le susurré al oído, con toda la bizarría que había acumulado, lo primero que se me ocurrió: <q>"La próxima vez que me toques te arranco la poya"</q>. Tal cual. A mi alrededor se había formado un corrillo de, supongo porque no podía verlo, ojipláticas bocas abiertas. Finalmente le aparté de un empujón, me di la vuelta para enfrentarme a la recreativa, me ajusté las gafas y seguí con la partida como si no hubiera pasado nada, que el que Zangief quiera hacer la Caidita de Roma con Chun-Li y lo consiga tampoco es para tanto.</p>
<p>Mientras jugaba temí que mis riñones saborearan la fría hoja de una chirla, porque en Gamonal había (y hay) gente <em>"mu loca"</em>, pero no, pude jugar mis autoimpuestas cuatro partiditas tranquilamente. Al salir pensé en que iba a encontrarme con la pandilla del chunguito en pleno o, peor aún, con su familia, pero lo cierto es que no lo volví a ver ni volví a tener problemas con otro chunguito en ninguno de los recreativos de la ciudad.</p>
<p>Palabra.</p>
 ]]></description>
 </item>

 </channel>
</rss>

