Category Archives: Language

Clases sobre mercados financieros

Uno de los aspectos en los que falla la educación básica (e incluso universitaria) es en la de proporcionar a los estudiantes las herramientas para entender como funciona el dinero. Estos conocimientos, que si son accesibles vía grado de administración de empresas o MBA, resultan fundamentales en una sociedad donde rigen las reglas de los mercados financieros. Se puede discutir si esta es la mejor forma de organizar una sociedad o no, pero lo que esta claro es que es mejor conocer las reglas del juego porque hoy por hoy es lo que tenemos.

El profesor Xavier Puig de la Universitat Pompeu Fabra ha colgado un conjunto de clases muy ilustrativas sobre el funcionamiento básico de los mercados financieros (monetarios, renta fija/variable, divisas), derivados (futuros, opciones) y matemáticas financieras elementales (VAN, TIR):
Continue reading Clases sobre mercados financieros

DNI electrónico en Ubuntu GNU/Linux

Mediante lectores de tarjetas inteligentes como LTC31 podemos hacer que nuestro sistema lea los DNIs electrónicos que se emiten actualmente.

Vamos a configurar el sistema para que Ubuntu reconozca el dispositivo lector y podamos utilizarlo desde el navegador Firefox. Para ello, instalaremos los paquetes necesarios (muchos de los pasos que describo los he obtenido del artículo DNIe y lector ACR38 bajo Linux):
Continue reading DNI electrónico en Ubuntu GNU/Linux

Configuración de los permisos de UDEV para escáner HP ScanJet 5p en Ubuntu

Desde hace bastantes años tengo un escáner HP ScanJet 5p con una tarjeta SCSI PCI que funciona a la perfección en GNU/Linux. El dispositivo es utilizado por todos los usuarios del PC y por tanto necesito que todos tengan permiso para escanear. Sin embargo, el sistema UDEV de Ubuntu asocia automáticamente el escáner a un dispositivo “/dev/sg3” con permisos únicamente para root, por tanto el resto de usuario no pueden utilizarlo.

$ ls -la /dev/sg3
crw-rw----+ 1 root root 21, 2 2009-05-24 14:36 /dev/sg3

Para cambiar este comportamiento, vamos a extraer información sobre el dispositivo que en mi caso corresponde sg3 pero puede variar según la configuración (consultar dmesg):
Continue reading Configuración de los permisos de UDEV para escáner HP ScanJet 5p en Ubuntu

Sintonizador TDT Hauppauge WinTV Nova T500 PCI en Ubuntu GNU/Linux

Recientemente he cambiado mi equipo de sobremesa y uno de los nuevos elementos que he incorporado ha sido la sintonizadora TDT de Hauppauge WinTV Nova T500. Como siempre hago con todo el hardware que compro, la elección estuvo condicionada a que funcionase correctamente en GNU/Linux 😀

Para hacerla funciona en Ubuntu, lo primero que tendremos que hacer es descargar el correspondiente firmware:
Continue reading Sintonizador TDT Hauppauge WinTV Nova T500 PCI en Ubuntu GNU/Linux

Gestión centralizada de usuarios con OpenLDAP

En uno de los últimos artículos hablábamos de cómo podemos hacer que nuestra Ubuntu sea más segura siguiendo las buenas prácticas reconocidas por los estándares internacionales. Si bien en ese mismo texto explicábamos como gestionar los usuarios locales, no valoramos cómo realizar dicha gestión cuando disponemos de una red con más de un servidor.

Con el objetivo de tener un mayor control sobre los usuarios definidos y una política de contraseñas homogénea, lo ideal en una red es disponer de un servicio centralizado de autenticación. Imaginaros que disponemos de una red con 20 servidores y necesitásemos dar de alta un nuevo usuario, deberíamos ejecutar las pertinentes modificaciones en los 20 diferentes entornos con el riesgo de errores e inconsistencias que ésto implica. Por otra parte, desde la perspectiva del usuario nos encontramos con 20 contraseñas que no tienen porque estar sincronizadas, diferentes políticas, etc… al final es más que probable que el usuario utilice contraseñas débiles o que las anote en un postit pegado al monitor.

Por esos motivos, desde el punto de vista de la seguridad, es recomendable disponer de un servicio centralizado de autenticación. Históricamente en el mundo Unix se ha utilizado NIS (Network Information Service), pero actualmente ya se encuentra en desuso y se recomienda LDAP por tratarse de un sistema más moderno y seguro.

Entre las implementaciones de LDAP más conocidas tenemos el Directorio Activo de Windows y OpenLDAP para sistemas Linux/Unix (también puede integrarse con clientes Windows). Veamos como podemos montar un servicio centralizado de autenticación con OpenLDAP que cumpla los siguientes requisitos:

  • Autenticación contra un único punto centralizado de la red.
  • Conexiones cifradas con TLS.
  • Identificación de estaciones mediante certificados digitales (únicamente podrán conectarse al servidor los clientes que dispongan de un certificado creado por nosotros y viceversa)
  • Política de contraseñas homogénea y robusta.
  • Los usuarios definidos en OpenLDAP dispondrán de campos donde se especificará a que máquinas tienen acceso. La autorización a que servicios de cada máquina se delegará a cada servidor para no perder flexibilidad.
  • Cuando el usuario se autentica por primera vez en un sistema, se almacenan sus credenciales en una cache local, de forma que si el servidor de LDAP cae temporalmente, el usuario puede seguir conectándose.

Continue reading Gestión centralizada de usuarios con OpenLDAP

R, estadística y tratamiento masivo de datos (alternativa a SAS, ACL e IDEA)

En el último artículo hemos visto AWK como herramienta para el tratamiento masivo de datos, donde hemos demostrado que podía ser una alternativa parcial a otras herramientas comerciales como SAS, ACL o IDEA (muy utilizadas en el mundo de la Auditoría). AWK es una solución parcial dado que únicamente nos proporciona funcionalidades para hacer un tratamiento básico sobre los ficheros (p.ej. sumarizaciones, cruces de datos, operaciones matemáticas simples, etc), sin embargo no tenemos las características estadísticas que si podemos encontrar en las herramientas comerciales.

Afortunadamente para todas esas funcionalidades podemos apoyarnos en R: R es un lenguaje de programación que permite llevar a cabo análisis estadísticos avanzados, entendiendo por por estadística como la ciencia de recoger y analizar datos con el propósito de sacar conclusiones y tomar decisiones.

Con R también podemos realizar cálculos numéricos, aunque para esas tareas también vale la pena echar un vistazo a Octave.

Aparte de las potentes características de R, existen multitud de paquetes que amplían las funcionalidades: desde dedicados al análisis de datos psicológicos hasta financieros.

Al igual que AWK, R no ofrece una interfaz gráfica tan potente como las herramientas comerciales que comentavamos, aunque podemos apoyarnos en determinados mecanismos que nos harán la vida más fácil a la hora de tratar la información (p.ej. utilizando MySQL Query Browser) como veremos en las correspondientes secciones del artículo.

Para aprender a utilizar R mediante esta guía es muy recomendable replicar todos los ejemplos y visualizar los resultados directamente. Únicamente leyendo el artículo es más difícil entender el funcionamiento completo de la herramienta.

De antemano pido disculpas si soy inexacto o cometo algún tipo de error en las explicaciones estadísticas, no soy un experto en esa materia y estaré muy agradecido si detectáis incorrecciones y las hacéis llegar vía comentario o correo.

Finalmente, destacar que para la elaboración del artículo me he basado en diversos tutoriales que he encontrado por Internet, especialmente simpleR, con los cuales he ido aprendido a utilizar R de forma paralela a la redacción de esta guía.
Continue reading R, estadística y tratamiento masivo de datos (alternativa a SAS, ACL e IDEA)

Tratamiento masivo de datos con AWK, alternativa parcial a ACL o SAS

GNU awk es una herramienta muy útil para modificar archivos, buscar y transformar datos y, en general, realizar cualquier tipo de tratamiento masivo de ficheros. Con un programa awk es posible contar el número de líneas de un archivo, seleccionar columnas, aplicar filtros, realizar cruces, borrar el último campo de cada línea, hacer sumarizaciones, comprobar duplicados, muestreos, etc.

Para aprender a utilizar AWK mediante esta pequeña guía, lo mejor es copiar los ficheros de ejemplo que aparecen y ejecutar las instrucciones o programas que se comentan para ver directamente cual es el resultado. Únicamente leyendo la guía es bastante más complicado entender el funcionamiento de AWK.
Continue reading Tratamiento masivo de datos con AWK, alternativa parcial a ACL o SAS