SQL-Server y capitalización compuesta: calcular el capital final.

Ayer veíamos cómo calcular el capital final y los intereses sobre un importe aplicando la formula de la capitalización simple en una consulta de SQL-Server. Hoy vamos a ver cómo calcular el capital final, pero con la fórmula de la capitalización compuesta:

La capitalización compuesta es una fórmula financiera que permite calcular el equivalente de un capital en un momento posterior.

La diferencia entre la capitalización simple y la compuesta radica en que en la simple sólo genera intereses el capital inicial, mientras que en la compuesta se considera que los intereses que va generando el capital inicial, ellos mismos van generando nuevos intereses.

La fórmula para obtener el capital final sería Cf = C0 * (( 1 + i) ^ t) siendo C0 el capital inicial, i el tipo de interés y t el tiempo. Ahora supongamo, como en el ejemplo de la capitalización simple, que tenemos una tabla llamada Depositos con una columna Capital donde almacenamos el dato del capital inicial, que para el ejemplo serán 2000 euros (C0=2000), una columna Interes con el tipo de interés, que para el ejmplo será del 5% anual (i=0.05) y una columna Tiempo que será de 10 años.

Entonces ¿cómo nos quedaría la consulta?

Select CONVERT(float,Importe)*POWER(CONVERT(float,(1.00+Interes)),Tiempo) from Depositos

¿Por qué metí ahí las funciones CONVERT() para asegurarme de que los valores con los que se operan son float? Bueno, en el caso del importe porque ya sabéis, como comentamos anteriormente, que SQL-Server 2008 (también os comenté que estoy estudiando las versiones posteriores) convierte a enteros los resultados de las operaciones si operamos con algún entero en las mismas. En el caso del segundo es por el funcionamiento de la función POWER(). Dicha función recibe dos parámetros y devuelve el valor del primer parámetro elevado al valor del segundo parámetro, pero el tipo de dato devuelto es siempre el mismo tipo que el enviado en el primer parámetro. Si, por ejemplo, recibe un valor Numeric(4,2) redondearía el resultado a dos decimales y nos daría un resultado bastante impreciso por ello.

SQL-Server y Capitalización simple:calcular los intereses y el capital final

La capitalización simple es una fórmula financiera que permite calcular el equivalente de un capital en un momento posterior. Se utiliza generalmente en depósitos o préstamos a corto plazo.

Partiendo de un capital (aquí será C0) del que se dispone inicialmente, se determinará la cuantía final que se recuperará en el futuro sabidas las condiciones en las que la operación se contrata (tiempo –t– y tipo de interés –i-).

La fórmula para calcular los intereses sería la siguiente: I = C0 * i * t. Es decir, los intereses son el Capital multiplicado por el tipo de interés y el tiempo.

Ahora supongamos que tenemos una tabla Cuentas donde guardamos el capital inicial y las condiciones. Supongamos que tenemos un capital inicial de 1000 euros (C0=1000) guardado en el campo Capital, a un interés del 10% anual (i=0.1) almacenadado en el campo Interes y por un año (t=1) almacenado en el campo Tiempo:

Select Capital*Interes*Tiempo as InteresAnual from Cuentas

El resultado de la consulta de arriba debería ser de 100 euros.

Ahora, usando los mismos datos del ejemplo de arriba ¿Cómo sabríamos cual es el capital final? Una opción es calcular el interés y sumarlo al capital inicial, otro es aplicar la fórmula CapitalFinal = C0 * (1 + (i * t)). La consulta sería así:

#Así multiplicando
Select Capital*(1.00+(Interes*Tiempo)) as CapitalFinal from Cuentas

Recuerda que SQL-Server, al menos en la versión 2008 (estoy actualizándome ahora a 2017, con mucho por leer), convierte siempre a entero si utilizas enteros en la operación, por eso que puse el uno seguido de decimales en la segunda consulta. Recuérdalo también a la hora de almacenar los datos y de operar con ellos.

Otro punto importante: el tipo de interés y el plazo deben referirse a la misma medida temporal. Es decir: si el tipo es anual el plazo debe de ir en años, pero si el tipo es mensual el plazo irá en meses. Por ejemplo, ¿con los datos de antes cómo se calcularía el interés generado en cinco meses?

Select Capital*(Interes/12.00)*5.00 as InteresMeses from Cuentas

Dividimos el interés anual entre 12 para obtener el interés mensual y multiplicamos por 5 para obtener el resultado deseado.

Lightbeam: Genera un gráfico para ver quién rastrea tus datos

La privacidad está en boca de todos estos días, secuela del terremoto del caso Cambridge Analytica. Yo mismo lo noto en la estadística de este sitio, las entradas sobre el tema están siendo más visitadas. Y sobre una entrada antigua vamos a hablar: en verano de 2013 le echábamos un vistazo a Collusion, un add-on para Firefox desarrollado por la propia Mozilla que nos permitía ver, en forma de gráfico, a qué sitios web (llamémoslos third-parties) eran enviados nuestros datos desde las webs que visitamos. Este proyecto entonces estaba en fase beta, pero unos meses más tarde llegaría la primera versión final ya con nombre nuevo: Lightbeam.

¿Cómo funciona Lightbeam? Pues la idea es esta: cuando tú visitas una web Lightbeam crea un gráfico que muestra qué third-parties (sitios de terceros) están activos en la misma. Ojo, no todos tienen por qué estar espiándote, pueden ser simplemente que cargue imágenes de un CDN externo, librerías de javascript o tipografías. En cualquier caso, ahí estarán representadas. Cuando visites un segundo sitio Lightbeam hará lo mismo, y así sucesivamente con todos. Lo interesante de esto es que verás como algunas aplicaciones de terceros se van uniendo desde varios sitios, permitiéndote saber quiénes pueden verte desde varios sitios distintos. Tienes la opción de descargar tus datos en formato JSON y de usar distintos formatos de visualización.

LightBeam Mozilla

¿Y la privacidad de esta aplicación? Según la propia Mozilla ellos no usan tus datos, estos se almacenan localmente en tu navegador, se puden borrar desde el mismo y se eliminan automáticamente también cuando se desinstala el add-on.

Al contrario que la versión beta, Collusion, Lightbeam sí que te permite habilitar una protección contra el rastreo que complemente y amplía la que de por si te ofrece ya Firefox. Puedes ver en la parte superior derecha un interruptor que pone Tracking Protection para habilitarlo o deshabilitarlo.

 

Configurar el DNS de CloudFlare en Windows y Linux

Hace un par de días CloudFlare ha anunciado un nuevo servicio gratuito de DNS, con la idea de competir con los de Google y los de OpenDNS (cuya popularidad ha caído desde que lo adquirió CISCO). La empresa afirma que es el servidor de DNS gratuito más rápido del mercado y también el más seguro en términos de privacidad, comprometiéndose a no minar datos y a borrar sus logs cada 24 horas (ahora a cada uno corresponde creer en la buena fé de las empresas implicadas, claro). Si quieres probarlo aquí te contamos cómo puedes configurar tu equipo:

¿Cómo lo hago en Linux?

Abre el fichero /etc/resolv.conf con un editor de texto (por ejemplo Nano) y añade estas dos líneas (adicionalmente puedes borrar los otros DNS si lo crees necesario)

nameserver 1.1.1.1
nameserver 1.0.0.1

Si utilizas IPV6 puedes añadir adicionalmente:

nameserver 2606:4700:4700::1111
nameserver 2606:4700:4700::1001

Por defecto /etc/resolv.conf permite un máximo de tres servidores, pero esto puede modificarse en el fichero /usr/include/resolv.h, cambiando el valor de la variable MAXNS.

También puedes modificar las DNS desde alguna herramienta del entorno gráfico, pero esta explicación a través de ficheros es universal.

¿Cómo lo hago en Windows?

Por no andar rompiéndome los huevos con distintas versiones de Windows también vamos a ver cómo hacerlo por línea de comandos (probado en Windows 7, Windows 2k8 y Windows 2k12), claro que siempre lo puedes hacer vía entorno gráfico:

wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ("1.1.1.1", "1.0.0.1")

O que é a Tríade CID?

Esta é uma tradução ao português dum artigo antigo. Cá uma ligação ao orixinal.

A Tríade CID não tem relação com poemas medievais castelhanos nem com as bandas desenhadas do Hernández Palacios, mas é um conceito da segurança dos dados que faz ênfase em três princípios que têm de trabalhar em conjunto para garantir a segurança de um sistema informático: Confidencialidade, Integridade e Disponibilidade.

  1. Confidencialidade: Os dados têm de estar só na mão dos utentes autorizados. Umas políticas de controlo do acesso têm de ser aplicadas para evitar que a informação classificada cair em mãos, seja ou não de forma intencionada, de utentes sem acesso.
  2. Integridade: O conceito integridade faz referência  a que os dados que temos armazenados sejam corretos e completos. Tem de se poder garantizar que os dados não foram mudados de forma não autorizada, que não é possível a perda destes dados é que os mesmos são consistentes, isto é que a informação é mesmo correcta à que temos no mundo exterior.
  3. Disponibilidade: Afinal, o conceito disponibilidade implica que a informação tem de estar acessível sempre para os utentes autorizados num tempo razoável. Isto é que os dados têm de estar sempre disponíveis para os utentes.

Na altura de desenhar uma estratégia de cibersegurança para uma empresa ou simplesmente na altura de armazenar qualquer coleção de dados confidenciais um deve considerar que estes três pontos têm de ser atingidos.  

¿Puedo descargar una copia de mis datos de Facebook? ¿y de Linkedin? ¿y de Twitter?

Estos días, tras todo el escándalo alrededor de la privacidad en Facebook y del uso de datos de los usuarios por parte de Cambridge Analytica algunas personas me han preguntado ¿puedo ver qué datos tiene Facebook almacenados sobre mi? Su recelo, además, alcanzaba a otras redes sociales.

En principio es posible descargar un fichero con todos los datos que, a priori, dichas redes dicen tener sobre ti. Veamos:

Facebook:

En la parte superior derecha de la web tienes un icono de una flecha señalando hacia abajo, justo a la derecha de un icono con una interrogación. Si pulsas en dicho icono se despliega un menú, donde debes pinchar sobre Configuración.

facebook1

En dicho menú tienes un enlace sobre el que pinchar, como puedes ver en la imagen de debajo, que te llevará a una pantalla desde que la que te solicitarán tu contraseña de nuevo para enviarte a tu correo de contacto un fichero con los datos solicitados.

Facebook: Enlace descargar fichero

LinkedIn:

Si pulsas sobre el icono con la miniatura de tu foto en la parte superior derecha se despliega un menú. En dicho menú eliges Ajustes y Privacidad.

Linkedin menú

Dentro ya de la ventana de Ajustes marcas la pestaña Privacidad que te aparecerá arriba y buscas entre las opciones que te da debajo la opción Descarga tus Datos, dentro del título Cómo utiliza LinkedIn tus datos.

Linkedin datos

Twitter:

Si pulsas sobre el icono con la miniatura de tu foto en la parte superior derecha se despliega un menú. En dicho menú eliges Configuración y Privacidad.

Twitter menú

En el menú de la derecha eliges Tus Datos de Twitter y allí ya sigues las instrucciones para descargarte tu fichero de datos.

Twitter descargar datos

¿Cómo reconocer un correo electrónico malicioso?

Tras una serie de días teniendo que arreglar problemas derivados de gente que abre correos a lo loco he creído útil dar aquí unas pautas que deberían ayudarnos a reconocer correos maliciosos. Si bien es cierto que la mayoría se servicios de correo electrónico populares tienen filtros contra el spam que evitan que nos inunde el correo basura, algunos más sencillos (Gmail, por ejemplo, te permite bloquear una dirección) y otros más configurables (volviendo al Gmail, en Gsuite da varios opciones)

Pero  a pesar de la inefable ayuda de estos filtros siempre puede colársenos algún correo malicioso, con archivos infectados o enlaces para hacer fishing, sea como fuere el filtro de spam no es infalible y en nuestro buzón siempre puede acabar apareciendo un correo trampa. ¿Cómo lo reconocemos? Aquí van unas pautas:

  • Si el correo electrónico no tiene asunto debemos empezar a desconfiar, o si el asunto está en un idioma que no conocemos.
  • Si el correo electrónico solicita la actualización de una cuenta y nos manda un enlace al que acceder para introducir nuestras credenciales… la mosca detrás de la oreja. Lo mejor es no pinchar ya, pero si accedes al enlace fíjate en la barra de direcciones para ver si te está llevando a la web legítima.
  • La ortografía cuenta: cuando el texto del correo electrónico tiene palabras mal escritas o puntuación extraña también debemos desconfiar. En muchos casos se usan traducciones automáticas, así que si vemos modismos extraños (shit yourself little parrot) tampoco hay que fiarse.
  • Cuando los enlaces del correo electrónico son largos, dirigen a direcciones IP o son crípticos lo mejor es no abrirlos.
  • Si por la forma parece provenir de una empresa legítima u organismo público y cumple alguna de las anteriores, entonces no lo dudes: malicioso seguro. Hacienda no te va a mandar un correo pidiéndote tu número de cuenta para realizarte una devolución de impuestos.
  • Si se solicita que el usuario abra un archivo adjunto ahí lo mejor es ya encender todas las alarmas, más aun si se trata de un archivo ejecutable o un fichero comprimido.

Aquí os dejo un ejemplo de un caso real que viene relatado en la web de INCIBE, para que le peguéis una ojeada.

Javascript: eliminar comillas y apóstrofos en una cadena.

El otro día, desarrollando una aplicación en el trabajo, me encontré con la necesidad de eliminar las comillas simples (o apóstrofos) y dobles de un campo de texto. ¿es posible hacerlo con Javascript? Sí, veamos varios ejemplos de expresiones regulares para hacerlo:

La primera opción sería eliminar ambas:

miCadena = miCadena.replace(/["']/g, "");

¿Y si cambiamos el apóstrofo por un acento?

miCadena = miCadena.replace(/[']/g, "`");

¿Y si cambiamos las comillas por dos acentos?

miCadena = miCadena.replace(/["]/g, "``");

¿Qué es la «Tríada CID» o el «Triángulo de la Seguridad»?

La Tríada CID no tiene que ver con cantares escritos en castellano medieval ni con tebeos de Hernández Palacios, sino que es un concepto dentro de la disciplina de la seguridad de la información que hace referencia a tres principios que deben trabajar en conjunto para garantizar la seguridad de un sistema informático: Confidencialidad, Integridad y Disponibilidad.

  • Confidencialidad: Los datos deben estar solo al alcance de los usuarios autorizados. Deben establecerse unas políticas de control de acceso para evitar que la información clasificada caiga en manos, ya sea de forma intencional o no, de un usuario sin acceso.
  • Integridad: El concepto integridad hace referencia a la correctitud y completitud de la informacion que tenemos almacenada. Debe poder garantizarse que no se realizan modificaciones de los datos no autorizadas, que no es posible la pérdida de datos y que los datos son consistentes, esto es que la información que tenemos almacenada es correcta respecto al mundo real exterior.
  • Disponibilidad: Finalmente, el concepto disponibilidad implica que la información tiene que ser accesible para los usuarios autorizados dentro de un tiempo razonable. Dicho de otra forma: la información debe estar siempre disponible para el usuario autorizado.

A la hora de diseñar una estrategia de seguridad para una empresa, o simplemente a la hora de almancenar cualquier colección de datos sensibles, estos tres puntos deben tenerse siempre en consideración.

Seguir leyendo «¿Qué es la «Tríada CID» o el «Triángulo de la Seguridad»?»

Shred: Borrado seguro en Linux

Con las herramientas forenses adecuadas no es complicado recuperar los datos que han sido borrados de un disco duro siguiendo el procedimiento normal. Con vaciar la papelera de reciclaje no basta para borrarlos totalmente, ya que esos datos simplemente han sido desindexados, pero permanecen en el disco y son recuperables. ¿Hay una forma de hacer esto sin recurrir a métodos tan drásticos como la destrucción del disco duro?

Sí, para todos los sistemas operativos hay programas de borrado que permiten realizar una eliminación más intensiva de los ficheros. Hoy nos centraremos en sistemas Linux y en el software de borrado seguro Shred.

Shred viene instalado por defecto en varias distribuciones, su sintaxis es shred [opciones] nombre de fichero y puede ser invocado usando las siguientes opciones:

  • f: Force. Cambia los permisos del archivo para forzar su borrado.
  • n: Número de veces que se sobrescribirá el archivo o partición (por defecto son 3). A mayor número, más difícil será la recuperación y más tiempo tardará. Hay que poner el número de escrituras después del parámetro
  • u: Trunca y elimina el archivo después de sobrescribirlo.
  • v: Muestra el progreso en pantalla.
  • z: Zero, sobreescribe con 0 para eliminar rastros.

 
Veamos un ejemplo, donde borraríamos un fichero llamado prueba.ls de forma contundente:

shred -n 15 -fuzv prueba.ls

De esta forma le decimos que elimine el fichero sobreescribiendo 15 veces, forzando el borrado, truncando y eliminando, sobreescribiendo con ceros y mostrando el progreso en pantalla. La recuperación del mismo tras esto puede que no fuera imposible, pero sí extremadamente compleja.