Condiciones legales aleatorias

En la página de ING de España aparece ahora mismo un contador creciente, parecido al que muestra el almacenamiento ofrecido por Gmail.

intereses

El dato se supone que muestra «Intereses abonados a nuestros clientes». Las condiciones legales detallan este valor calculado:

Fuente: Elaboración propia. La presente información está basada en los intereses efectivamente abonados y comisiones efectivamente cobradas a los clientes de ING DIRECT N.V. Sucursal en España durante el periodo comprendido entre el 12/05/1999 y el 31/12/2011 en los distintos productos de ahorro ofrecidos por ING DIRECT y en una estimación sobre los intereses que la Entidad prevé abonar en los mismo productos durante los años 2012 y 2013, basando dicha previsión en datos históricos y en las estimaciones de evolución del negocio durante dicho periodo, todo lo cual se presenta prorrateado por segundo. El presente contador no constituye una oferta ni garantiza el mantenimiento de las condiciones aplicadas en el pasado.

Detrás de este formulismo, que aparenta fiabilidad y seriedad, se encuentra un algoritmo de barrio:

(function () {
    $(document).ready(function () {
        function f(a) {
            a = ("" + a).replace(".", "");
            a = a.replace(",", ".");
            return a = parseFloat(a)
        }
        function h(a, e) {
            for (var a = Math.round(100 * a) / 100, 
d = Math.round(100 * (a % 1)), 
c = parseInt(a), c = "" + c, b = ""; 0 < c.length;) b += c.charAt(0), 
c = c.substr(1), 0 == c.length % 3 && 0 < c.length && (b += ".");
            void 0 === e && (b = b + "," + parseInt(d / 10), b += d % 10);
            return b
        }
        function g(a) {
            var a = "" + a,
                e = parseInt(a.slice(0, 4)),
                d = parseInt(a.slice(4, 6)),
                a = parseInt(a.slice(6, 8));
            return (new Date(e, d, a)).getTime()
        }
        function i(a) {
            var e = a.data("initDate");
            a.data("amount");
            var d = a.data("amountASec"),
                c = a.data("initAmount"),
                b = (new Date).getTime() - e,
                f = c + d * b;
            setInterval(function () {
                b = (new Date).getTime() - e;
                f = c + d * b;
                a.text(h(f))
            }, 127);
            Math.random()
        }
        $(".estresarte-ing-contador-intereses").each(function () {
            var a = $(this),
                e = f(a.attr("initAmount")),
                d = g(a.attr("initDate")),
                c = f(a.attr("finalAmount")),
                b = g(a.attr("finalDate")),
                c = (c - e) / (b - d),
                b = (new Date).getTime() - d,
                b = e + c * b;
            a.data("amountASec", c);
            a.data("initAmount", e);
            a.data("initDate", d);
            a.data("amount",
            b);
            setTimeout(function () {
                i(a)
            }, 1)
        })
    })
})();

Sin entrar en muchos detalles, la función que calcula el número que se ve, se basa en elegir números aleatorios que, sumados a la cantidad de intereses pagadas anteriormente, muestra una evolución en el tiempo muy bonita pero básicamente aleatoria.

Sin embargo hay que tener mucha cara para equiparar al algoritmo con la descripción legal.

una estimación sobre los intereses que la Entidad prevé abonar en los mismo productos durante los años 2012 y 2013, basando dicha previsión en datos históricos y en las estimaciones de evolución del negocio durante dicho periodo

Desde luego que ING es un buen banco, pero esos detalles son patéticos. Y llamar al elemento que contiene al contador "estresarte-ing-contador-intereses", pues un detalle muy elegante, que muestra a programadores motivados al 200%.

4 comments

  1. Pingback: joneame.net
  2. Carcajadas mañaneras.

    Mi pequeña apuesta: ‘maximum trolling’ de un informático a punto de abandonar la cárnica correspondiente que contrató ING.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *